我正在开发一个ASP .Net MVC应用程序,在我的开发机器上,应用程序按预期运行,更重要的是,CSS文件中提到的图像也正确显示。
但是,当我将此应用程序发布到测试服务器时,Web应用程序运行正常,但图像未显示。
如果我在测试测试服务器的输出时修改了IE中的URL,则会返回该图像,这意味着该文件存在但在正常使用该站点时它不会出现在视图页面中。
我也尝试过其他服务器,但结果是一样的。
要确认,这是引用图像的CSS页面中的一行......
background-image: url('/Content/Images/Logo/myLogo.jpg');
有什么建议吗?
干杯
布雷特
答案 0 :(得分:19)
网址不正确,可能是因为您要在子文件夹中发布,因此它们不再位于服务器的根目录下。我通常使用Url.Content( "~/Content/Images/..." )
来构建网址而不是硬编码。这样,它将在构建路径时考虑路径。
示例:
<img src='<%= Url.Content( "~/Content/Images/banner.jpg" ) %>' alt="Banner" />
答案 1 :(得分:3)
我遇到了同样的问题,但我找到了为什么强制在Contents文件夹中进行身份验证的原因。
当用户尚未登录时,它们将被归类为匿名身份验证。在IIS7中(我正在使用它,猜测它在IIS6中是相同的)您需要在功能视图中打开身份验证窗口。然后编辑匿名身份验证,使用您的应用程序池标识或默认身份验证,只需确保该用户有权读取该文件夹。
为我修好了,希望它适合你。
答案 2 :(得分:1)
可能的相对路径是错误的...可能它们对CSS文件本身是错误的。您可以使用FireBug查看CSS是否正确加载,然后您可以检查图像请求,通常在这种情况下您将看到红色(错误)项目。这可能有助于本地化问题。