[Php] Ressource als Bild interpretiert, aber mit MIME-Typ text / html ├╝bertragen - Magento


Answers

Mir ist dieses Problem in meinem JavaScript-Konsolenprotokoll aufgefallen. Es war ein einfacher Fall einer CSS-Datei, die nach einem Hintergrundbild suchte, das nicht existierte, und der Server sendete stattdessen eine 404-Fehlermeldung.

Question

Ich bekomme einen Fehler, wenn ich ein neues Produktbild für meinen Magento-Shop hochlade.

Resource interpreted as image but transferred with MIME type text/html

Gibt es einen Grund, warum dies geschieht?




Für mich wurde dieser MIME-Typ-Fehler nur beim Testen von Safari 4.05 pro Client-Anforderungen und nur in der Konsole angezeigt. Letztendlich wurde dies von Safari verursacht, die das JavaScript-Styling verarbeitet. element.style.backgroundImage="url()"; ungraziös. Offensichtlich suchte Safari nach diesem leeren URL, also ist pro Strixy und Stevecomrie "none" die bessere Wahl. Dies ist im Wesentlichen das gleiche Problem wie oben erwähnt als nahe Duplikat von Ressourcen als andere interpretiert, aber mit MIME-Typ Text / Javascript übertragen? , wobei ein <script src=""> der Täter war.




Mein Problem war mit dieser Zeile im CSS

background-image: url(''); 

Was hätte sein sollen:

background-image: none;



Wenn Ihr Abbildpfad und der Groß- / Kleinschreibungsname richtig eingestellt sind und Sie die .htaccess-Datei Ihres Servers nicht ändern können, ist das Codieren der SVG als Daten-URI eine Front-End-Lösung. css-tricks.com erklärt wie: http://css-tricks.com/using-svg/




Vielleicht haben Bilder keine Leseberechtigung

Ich habe auch dieses Problem, wenn ich TinyPNG benutze, um Bilder zu komprimieren, habe ich diese Fehlermeldung "Ressource als Bild interpretiert, aber mit MIME-Typ Text / HTML übertragen". Dann füge ich Bilder hinzu, es funktioniert.




Nach vielen Recherchen habe ich festgestellt, dass das Problem durch eine Kombination von Dingen verursacht wird, die dazu führen, dass der Server nicht weiß, um welchen Dokumenttyp es sich handelt und wie er zwischen Codierungstypen wie UTF-8 (oder so etwas) verwechselt wird.

Ändern Sie also in .htaccess die Kommentarrunde, sodass Sie Folgendes haben und einen Standardzeichensatz von UTF-8 angeben.

############################################
## Prevent character encoding issues from server overrides
## If you still have problems, use the second line instead

    #AddDefaultCharset Off
    AddDefaultCharset UTF-8

Dies beendete den korrekten Fehler, der in google angezeigt wurde (danke mr google): "Ressource als Bild interpretiert, aber mit MIME-Typ text / html übertragen"

Und das ließ die Bilder in anderen Browsern auftauchen (wo kein Fehler angezeigt wurde).




Ich hatte einmal das gleiche Problem, wegen der Kapitalisierung .

Meine Kollegen arbeiteten an einem Mac und fügten einige mit Kamelen versehene Dateien hinzu, die jedoch in CSS angezeigt wurden. Das funktioniert gut unter Mac, aber ich habe unter Linux gearbeitet. Mac unterscheidet keine Dateinamen, die unterschiedliche Fälle haben, aber Linux tut dies. Die meisten Server laufen unter Linux.

Beispiel:

epicimage.jpg !== EpicImage.jpg

Dank der Chrome Dev Tools konnte das Problem sehr einfach gefunden werden. Ein Klick auf die Bild-URL zeigte mir unsere 404-Seite. Geheimnis gelöst: D