为什么这些资源无法加载?

时间:2013-05-23 18:06:11

标签: asp.net css png http-status-code-404 google-chrome-devtools

我的asp.net项目在\ Content \ Images文件夹中有几个.png(和一些.gif文件)。

找不到两个; Chrome Dev Tool的控制台告诉我:“无法加载资源:服务器响应状态为404(未找到)

...果然,如果我点击它显示的链接(例如, http://localhost/@System.Configuration.ConfigurationManager.AppSettings [%22ThisApp%22] / Content / Images / PlatypusorangeSprite .png )它带我到GDT的资源选项卡,虽然Images文件夹显示该文件存在,但有一个“破碎的图像”表示。

同样的事情只发生在另一个图像文件中(它们都在同一个位置,并且在CSS文件声明中对它们的引用确实指向它们存在的位置,例如:

background:#E5EDFE url('/@System.Configuration.ConfigurationManager.AppSettings["ThisApp"]/Content/Images/PlatypusorangeSprite.png') repeat-x 0 -369px;

我可以在VS2010 IDE中双击这些文件,它们打开后看起来很好看。

那么为什么他们没有在浏览时被发现/被视为破碎的图像?

更新

好吧,显然它与我将cshtml文件中的所有样式声明移动到页面中引用的单独样式表/ CSS文件有关(我回到了旧的方式,它工作正常 - pngs再次被发现(我甚至想象我听到他们唱着“ Amazing Grace ”))。由于它不是那些png的相对路径,为什么样式信息在Content文件夹中的.css文件中而不是“内联”呢?

当你做“正确”的事情时,我讨厌它,这会让事情变得更糟。

2 个答案:

答案 0 :(得分:1)

任何案例敏感度差异,也许?

答案 1 :(得分:1)

  1. 有些客户不小心将后缀转换为大字母,如.JPG或.PNG。如果您通过.jpg或.png调用它们,则不匹配。

  2. 通过在Visual Studio中编译,打开浏览器,查看HTML并检查图像的渲染路径来渲染模板:<image src="..." />。或者,尝试在浏览器中通过url通过ftp直接调用图像,例如ftp://www.mysite/pics/,然后单击显示图像的链接。然后你会在网址中找到正确的路径。

  3. 同时检查后缀是否意外加倍,如mypic.jpg.jpg。