2010-11-29 5 views
13

Kennt jemand, ob es problematisch ist, protocol relative URLs für eine Bildquelle zu verwenden, um Warnmeldungen zu gemischten Inhalten zu verhindern.Verhindern von sicheren/unsicheren Fehlern durch Verwendung von protokollrelativen URLs für die Bildquelle

Zum Beispiel verbindet ein Bild wie:

<img src="//domain.com/img.jpg" /> 

statt:

<img src="http://domain.com/img.jpg" /> 
or 
<img src="https//domain.com/img.jpg" /> 

In meinen Tests ich nichts zu deuten darauf hin, gesehen habe, das ist falsch, aber ich bin nicht sicher, ob es hat Randfälle, wo es Probleme schaffen wird.

BEARBEITEN Ich habe gesehen, es wirft Fehler bei der Verwendung von PHP getimagesize Funktion.

Antwort

14

Haben Sie einen interessanten Gotcha für die Verwendung von Protokoll relative URLs:

Du musst vorsichtig sein, nur diese Syntax in Seiten für Browser bestimmt verwenden. Wenn Sie es in eine E-Mail einfügen, wird keine Basisseiten-URL geben, um bei der Auflösung der relativen URL zu verwenden. In Outlook zumindest, wird diese URL interpretiert als eine Windows-Netzwerkdatei, nicht was Sie vorhatten.

von here

Im Wesentlichen wenn es keine triftigen Gründe, warum dies nicht so lange arbeiten soll wie die Anforderung von einem Browser erfolgt und nicht einem externen E-Mail-Client.

weitere Informationen von here:

Eine relative URL ohne Schema (http: oder https :) gültig ist, pro RTF 3986: Abschnitt 4.2. Wenn ein Client darauf klopft, dann ist es der Client Fehler, weil sie nicht mit der URI Syntax im RFC entsprechen.

Ihr Beispiel ist gültig und sollte funktionieren. Ich habe diese relative URL-Methode mich auf stark frequentierten Websites verwendet und haben keine Beschwerden. Auch wir testen Sie unsere Websites in Firefox, Safari, IE6, IE7 und Opera. Diese Browser alle verstehen, dass URL-Format

3

IE 7 und IE 8 werden download stylesheets twice, wenn Sie eine Protokoll-relative URL verwenden. Das betrifft Sie nicht, wenn Sie es nur "für eine Bildquelle" verwenden, aber nur für den Fall.

Verwandte Themen