未在ASP.NET MVC中显示的CSS图像

时间:2011-04-07 03:17:26

标签: css asp.net-mvc image

在我的ASP.NET MVC应用程序中,我通过CSS引用背景图像。当我在开发环境中运行它们时,它们显示正常。但是当我部署它时(使用IIS 7.5),图像根本不会加载。我已经尝试了相对路径和background / background-image CSS标记的每种组合,但没有任何作用。这是我的文件结构和CSS:

文件结构:

Content  
    CSS file  
images  
    image.png  

CSS:

background-image: url(/images/bsb_header2.png);

我也尝试../images/bsb_header2.png../../images/bsb_header2.png无济于事。

真正奇怪的是,当我尝试直接转到图像(即www.website.com/images/image.png)时,我被重定向到登录页面。也许我缺少一些访问或安全设置?我还没有使用登录控件做任何事情(默认帐户视图和控制器都在我的项目中,但我还没有做任何事情)我可以查看我的所有其他页面。

更新:我终于想通了。有问题的图像文件已加密。右键单击图像文件并导航到属性,单击常规选项卡上的高级按钮,取消选中“加密内容以保护数据”,单击“确定”,“确定”。

当我注意到Windows资源管理器中的文件名是绿色时,提示终于来了。我一直看到绿色文件名没有任何问题,所以我没有想到它。然后我发现它是整个Web应用程序文件夹中唯一的绿色文件。将两个和两个放在一起,它立即起作用。谢谢大家的帮助。

7 个答案:

答案 0 :(得分:3)

请添加两个用户 的 IUSR 下, 的 IIS_IUSRS 到发布文件夹并为他们分配阅读和阅读权限执行

答案 1 :(得分:1)

IIS 7.5是否可能未正确安装?

如果您打开或关闭Windows功能,请执行以下操作:

互联网信息服务/ 万维网服务/ 常见的Http功能

有一个静态内容复选框

检查了吗?

请参阅此link了解屏幕截图。

答案 2 :(得分:1)

我终于明白了。有问题的图像文件已加密。右键单击图像文件 - >属性 - >常规标签上的高级按钮 - >取消选中“加密内容以保护数据” - >好的 - >行。

当我注意到Windows资源管理器中的文件名是绿色时,提示终于来了。我一直看到绿色文件名没有任何问题,所以我没有想到它。然后我发现它是整个Web应用程序文件夹中唯一的绿色文件。将2和2放在一起,它立即起作用。谢谢大家的帮助。

答案 3 :(得分:1)

在css中设置“display:block”

.searchbtn
{
    margin-top:-15px;
    background-image:url(../images/icons/search.png);
    background-repeat:no-repeat;
    width:18px;
    height:18px;
    display: block;
}

答案 4 :(得分:0)

根据您的描述,似乎将.png的请求路由到ASP.NET / MVC引擎而不是由IIS提供。

Global.asax中的路由规则是否可能正在选择.png文件? (我知道这并不能解释为什么它在您的开发环境中有效。)

如果在Global.asax的路由列表的开头为.png文件添加ignoreRoute,它是否有效?像下面的东西......

 routes.IgnoreRoute("{resource}.png");

答案 5 :(得分:0)

网址应该是相对的!

background-image: url(images/bsb_header2.png)

答案 6 :(得分:0)

有同样的问题,终于找到了解决方案。

  • 在IIS中打开“授权规则”。
  • 如果没有任何内容,请单击“添加允许规则”
  • 选择“所有用户”,然后点击确定