IE11 Nicht Angezeigt Bild Mit Object-Tag Durch Web-Server, Aber Feines Lokal

Problem: Beim betrachten eines Bildes von setup-Daten über ein object-tag (Internet Explorer 11 wird nicht angezeigt, wenn die Anzeige durch den web-server. Hier ist der gesamte code:

<!DOCTYPE html>
<html>
<head></head>
<body>
<div style="width:200px; height:100px"><img src="../../square.svg"/></div>
<div style="width:200px; height:100px"><embed src="../../square.svg"></div>
<div style="width:200px; height:100px"><object data="../../square.svg" type="image/svg+xml">Nope</object></div>
</body>
</html>

Für Firefox 28/Chrome 34, alle 3 Felder werden angezeigt, wenn ich gehen, um die URL des Dokuments ODER öffnen Sie das Dokument lokal. Für Internet Explorer 11, die Plätze werden alle angezeigt, wenn lokal. Bei der Anzeige durch den web-server, nur die ersten beiden Plätze angezeigt werden. Für die Dritte bekomme ich "NÖ". Ich wollte versuchen, mit ein .png zu sehen, ob es war .svg verwandt, aber ich hatte die gleichen Ergebnisse. Schließlich werden die Netzwerk-tabs der developer tools von Firefox/Chrome zeigen das ERHALTEN der Rückkehr ein "svg" - Typ, aber der IE developer tools zeigt, ist es wieder der Typ "text/html" und abgebrochen. Ist es dem web-server, oder etwas, was ich falsch mache?

Hinzufügen, ein wenig mehr detail, ich lief in dieses, während Sie versuchen ein anderes problem zu lösen. Das Endziel von all dem ist extern .svg-Bildern zu füllen, die Ihre container (OHNE behalten Ihr Seitenverhältnis erhalten). Firefox scheint zu behandeln .svgs wie normale Bilder in der < img> tag und ich kann Sie dehnen wie normal. Chrome scheint zu wollen, um Ihre Seitenverhältnis, und IE war ein Chaos. Ich hoffte, durch die Umwandlung in < object> ich konnte mich zwingen, die .svgs ein wenig mehr, aber ich bin nicht in der Lage, um zu diesem Punkt zu testen.

Edit: Naja, ich konnte nicht herausfinden, das Problem, aber ich wollte herausfinden, eine Lösung zu meinem ursprünglichen Ziel. Bin ich ziehen die .svg-Bilder mit einem ajax-request, die änderung des viewBox - /preserveAspectRatio/width-und height-Attribute und setzen Sie dann das svg-Objekt inline. Es ist grob und wirklich weh tut mir auf die caching-Seite der Dinge, aber es funktioniert für alle Browser, die ich planen, zu unterstützen.

Anfrage-Header-Erfolg:

GET http://127.0.0.1/file/square.svg HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://127.0.0.1/file/xxx/xxx/index3.html
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: 127.0.0.1
If-Modified-Since: Fri, 18 Apr 2014 03:31:10 GMT
DNT: 1
Connection: Keep-Alive
Pragma: no-cache
Cookie: vendor_session=xxx

Antwort Erfolg:

HTTP/1.1 304 Not Modified
content-type: image/svg+xml; charset=UTF-8
last-modified: Fri, 18 Apr 2014 03:31:10 GMT
date: Sat, 19 Apr 2014 01:23:12 GMT
cache-control: private, must-revalidate, max-age=86400
expires: Thu, 01 Jan 1970 00:00:00 GMT
content-length: 0
server: Vendor Web Server/Version

Anfrage Fehlschlagen:

HEAD http://127.0.0.1/file/square.svg HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Host: 127.0.0.1
Content-Length: 0
DNT: 1
Connection: Keep-Alive
Pragma: no-cache
Cookie: vendor_session=xxx

Antwort Ausfallen:

HTTP/1.1 405 Method Not Allowed
content-type: text/html; charset=UTF-8
date: Sat, 19 Apr 2014 01:33:01 GMT
cache-control: private, must-revalidate
expires: Thu, 01 Jan 1970 00:00:00 GMT
content-length: 839
server: Vendor Web Server/Version
  • Mit Fiddler, poste bitte die HTTP-request-und response-Header für die Arbeits-und fehlerhaften SVG-Anfragen.
  • Ich bemerkte eine seltsame Sache, die auch mit Fiddler mit dem < embed > tag. Im IE nur, wenn ich die Seite aktualisieren will, erhalte ich die folgende Fehlermeldung, aber wenn ich auf die URL klicken und die EINGABETASTE drücken, wird das Quadrat angezeigt wird und normal aussieht.[Spielmann] - Antwort-Header-parsing fehlgeschlagen. Dies kann verursacht werden durch eine ungültige HTTP-Antwort früher auf diese wiederverwendet server-socket-zum Beispiel ein HTTP/304 Reaktion, die illegal enthält einen Körper. Response-Daten:
  • Der Spielmann betreffende Fehlermeldung zeigt an, dass der server das senden von ungültigen HTTP-Verkehr. Dies ist ungewöhnlich für den real-Servern wie Apache oder IIS, sondern tritt Häufig mit "custom" web-Servern wie (ich vermute) "Vender Web-Server".
Schreibe einen Kommentar