2010-06-02 44 views
2

我试图设置图像的来源。该图像在IE和Firefox中正确显示,但未在Chrome中显示。显示在控制台中的错误消息是:“资源解释为图像,但是以MIME类型text/html传输。”在Chrome中未显示图像

ColdFusion.Window.show('loading'); 
image = <cfoutput>#randrange(1,numImages)#</cfoutput>; 
document.getElementById("loadImg").src = "./images/loading" + image + ".gif";   
setTimeout('document.images["loadImg"].src = "./images/loading" + image + ".gif"', 100); 

我想我必须改变MIME类型,但我不知道如何去做这件事。我需要改变什么才能在Chrome中使用?

+4

你能告诉我们你的页面的其余部分(HTML等)或示例页面吗?在控制台上显示错误消息(shift + ctrl + J)? – 2010-06-02 16:41:12

+0

您是否尝试过在路径中没有点? – 2010-06-02 17:05:47

+0

有一个错误消息 - 请参阅上面的我的编辑。 – dmr 2010-06-02 17:30:53

回答

2

那么,错误消息完全描述了问题。很显然,其他浏览器在使用不正确的MIME类型的图像时出现问题较少,但Chrome不喜欢它。

这几乎肯定是服务器端错误。您想要动态生成的图像,如使用PHP脚本?

1

我猜text/html MIME类型是因为图像URL返回一个404页面。尝试没有在路径的点:

document.getElementById("loadImg").src = "images/loading" + image + ".gif"; 
+1

这可能会导致Chrome中的错误? – 2010-06-02 17:44:55

+1

好吧,我在想,chrome将URL解释为类似http://foo.com/./images/loading1.gif的内容,而Web服务器正在返回404页面。然后,Chrome会抛出错误,因为返回的HTML不是图像数据。 – 2010-06-02 17:47:56

+2

但每个网络服务器(或Chrome本身)都应该简单地将该URL解析为foo.com/images/loading1.gif。我刚刚使用http://stackoverflow.com/./questions通过Chrome对其进行了测试,Chrome会自动正确解析网址。 – 2010-06-02 22:28:21

2

我会使用开发工具(按Ctrl-Shift-I键),然后检查你要指定src属性。一旦你得到这个URL,试试看看你是否真的得到了一个图像。正如其他人所说,你可能会得到404。URL可能不完全按照你的意图。

2

IF您知道图像存在于该位置,那么Web服务器的MIME类型可能会错误地配置为.gif。应该是图像/ gif看起来像是text/html。