资源被解释为图像,但以text/html MIME类型传输 - Magento

38

当我在我的Magento商店上传新产品图片时,出现以下错误。

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

这是发生的原因吗?


你能否将图片附加到你的问题上? - jprofitt
重复,参见https://dev59.com/UHM_5IYBdhLWcg3waieJ - Neil
2
@Neil 不完全是重复;OP得到了不同的MIME类型,与其他问题不同。 - BryanH
在我的情况下,图像的格式类似于 data:image;base64,/9j/4AAQS.....,在Chrome中似乎不是错误,而是警告。这个警告是因为我必须在 data:image 之后设置/编写文件类型。 - Andris
15个回答

45

如果您的图像路径设置不正确,可能会出现这种情况。例如相对于当前目录的路径为"images/myimage.gif",而相对于Web根目录的路径则是"/images/myimage.gif"。

"text/html"的引用可能表明服务器返回了错误。


我认为这应该被标记为最佳答案 - 谢谢 - hardba11
是的,在我的情况下,它是大写字母S而不是小写字母s :P - Faizan

12

我注意到这个问题出现在我的JavaScript控制台日志中。这只是一个CSS文件寻找一个不存在的背景图片,服务器发送了一个404错误消息来代替它。


5

需要使用正确的MIME类型来提供图像 -

将以下行添加到.htaccess文件中(假设它是apache2 httpd):

AddType image/gif .gif

提示:mod_rewrite可能需要为图像进行排除处理。
RewriteCond %{REQUEST_URI} !\.(png|gif|jpg)$
RewriteRule ...

......其他的可能确实是404错误。


3

我曾经也遇到过同样的问题,是因为字母大小写的问题。

我的同事们在Mac上工作,并添加了一些驼峰格式的文件,但在CSS中显示为小写。这在Mac上运行良好,但我在Linux上工作。 Mac不区分大小写的文件名,但Linux有区别。大多数服务器都运行在Linux上。

例如:

epicimage.jpg !== EpicImage.jpg

多亏了Chrome Dev Tools,问题可以很容易地找到。只需单击图像URL,就能显示我们的404页面。谜底揭开 :D


3
请检查您的图像扩展名,无论程序使用何种大小写字母创建图像标签,请注意有些服务器会将它们读取为不同的格式。

2
+1,将“.JPG”更改为“.jpg”解决了我的问题。 - Emmanuel M. Smith

2
我的问题出在CSS中的这一行。
background-image: url(''); 

应该是这样的:

background-image: none;

2
经过大量研究,我发现问题是由多种因素组合而成的,导致服务器不知道文档类型,并在编码类型(如UTF-8或类似编码类型)之间混淆。因此,在.htaccess中更改注释顺序,以便采用以下设置,并设置默认字符集为UTF-8。
############################################
## Prevent character encoding issues from server overrides
## If you still have problems, use the second line instead

    #AddDefaultCharset Off
    AddDefaultCharset UTF-8

这样做可以解决谷歌显示的正确错误(感谢谷歌先生):“资源被解释为图像,但使用文本/ html MIME 类型传输”,并使图像在其他浏览器中显示出来(没有显示错误)。请注意保留 HTML 标记。

2

我查看了StackOverflow上几乎所有类似的问题,试图解决类似的问题。

在尝试修改我的htaccess文件和插入php头参数之后,最终让我解决问题的是...只需更改图片名称中的大写字母。

唉。 (同样的浏览器本地主机上也可以正常工作...所以我一开始当然不会认为这是问题。)


0

对于Magento 2用户

如果您已经修改了此文件 app/etc/di.xml,请按照以下方法进行操作

<item name="view_preprocessed" xsi:type="object">Magento\Framework\App\View\Asset\MaterializationStrategy\Copy</item>

确保路径字符串区分大小写(对于非Windows操作系统,使用CaseSensitive)


如果您在Ubuntu上安装Magento2后遇到404错误,请安装并启用rewrite模块。
a2enmod rewrite

然后编辑

 /etc/apache2/sites-available/000-default.conf

在结尾处添加以下行:
<Directory "/var/www/html">
    AllowOverride All 
</Directory>

0

对我来说,这个MIME类型错误只在测试Safari 4.05时出现,因为客户要求,并且只在控制台中显示。最终,这是由于Safari不优雅地处理了javascript样式element.style.backgroundImage="url()";。显然,Safari正在寻找空的URL,所以根据Strixy和stevecomrie,"none"是更好的选择。这本质上与上述问题相同,几乎是Resource interpreted as other but transferred with MIME type text/javascript?的副本,在其中,一个<script src="">是罪魁祸首。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接