Meteor:资源解释为图像,但使用MIME类型text / html进行传输

时间:2013-01-06 16:50:57

标签: meteor handlebars.js

我正在使用Meteor 0.5.2并在Chrome中针对每个由模板帮助程序生成src的图像发出以下警告:

Resource interpreted as Image but transferred with MIME type text/html:
"http://localhost:3000/images/". domutils.js:126

在我的模板中,我定义了这样的图像:

<img src="images/{{userOwnerAvatar}}" alt="" width="32" height="32" />

我正在使用模板辅助函数从Mongo中提取确切的图像名称(例如“avatar.jpg”)。所有图像都可见,并在浏览器中正确加载。

当我直接在图像名称中键入模板(硬编码图像名称)时,警告消失。

e.g。

<img src="images/avatar.jpg" alt="" width="32" height="32" />

为什么我一直收到这个警告,我该怎么办呢?

谢谢,弗拉基米尔

5 个答案:

答案 0 :(得分:4)

相关,虽然没有具体回答上述问题,但我收到了类似的警告/错误消息。我的CSS是这样的:

.myClass a{
    background: url(my-image.png) top left no-repeat;
}

通过将其更改为(注意引号和正斜杠)来修复它:

.myClass a{
    background: url('/my-image.png.png') top left no-repeat;
}

我不知道为什么Meteor(或Handlebars)的引号和斜线很重要......

答案 1 :(得分:1)

{{userOwnerAvatar}}的值未正确解析,这就是为什么您的浏览器说“http:// localhost:3000 / images /”被解释为text / html(注意缺少实际图像)该URL中的文件名)。修复模板助手: - )

答案 2 :(得分:1)

这是Chrome生成的不安全内容警告,说服务器在HTTP标头中发送错误或丢失的Content-type。有时在加载自定义Javascript或CSS等时也会发生这种情况。

我也经历过同样的问题。在这里,浏览器需要Content-type: image/jpeg,但它被解释为text/html。因为您没有在助手中指定content-type

这些只是一种类型警告,对运行应用程序没有影响。

答案 3 :(得分:1)

我有一个类似的问题,因为能够通过将我的img文件夹移动到Meteor项目的公共文件夹来解决它,所以它是直接提供的。我的源网址仍为src="img/pic.png"

答案 4 :(得分:0)

我在使用铁路由器包时遇到了类似的问题,尽管图像根本没有显示。我的图片在公共/目录中。如果我使用的是网址http://localhost:3000/tracker,它们会正常显示,但我在路径http://localhost:3000/tracker/item上的网页无法正确加载图片并给我上述错误。

我使用的是以下html:

<img src="{{this.itemImage}}" alt="{{this.itemName}}">

当我添加&#39; /&#39;在此{{this.itemImage}}之前:

<img src="/{{this.itemImage}}" alt="{{this.itemName}}">

图像将正确加载,并且不会出现错误。