在我的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应用程序文件夹中唯一的绿色文件。将两个和两个放在一起,它立即起作用。谢谢大家的帮助。
答案 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)
有同样的问题,终于找到了解决方案。