C# css在服务器iis 7中工作不正常,如在本地
当我在Visual Studio 2012上调试ASP MCV 4应用程序时,CSS会正确显示。我将其部署到IIS7,但我注意到并非所有CSS都像在本地一样工作,一些样式丢失了。我已经编辑了渲染字符串,这样它就不会像上面所说的那样与我的实际目录结构相似,但是我没有得到好的结果。你知道如何处理这个问题吗 更新 要发布我的应用程序,请执行以下操作:C# css在服务器iis 7中工作不正常,如在本地,c#,css,asp.net-mvc-4,iis-7,C#,Css,Asp.net Mvc 4,Iis 7,当我在Visual Studio 2012上调试ASP MCV 4应用程序时,CSS会正确显示。我将其部署到IIS7,但我注意到并非所有CSS都像在本地一样工作,一些样式丢失了。我已经编辑了渲染字符串,这样它就不会像上面所说的那样与我的实际目录结构相似,但是我没有得到好的结果。你知道如何处理这个问题吗 更新 要发布我的应用程序,请执行以下操作: 我使用过按钮发布(VS 2012) 选择文件系统(发布方法) 从IIS管理器浏览应用程序 当点击F12:我得到这些消息“加载资源失败:服务器响应状态
- 我使用过按钮发布(VS 2012)
- 选择文件系统(发布方法)
- 从IIS管理器浏览应用程序
只需删除请求筛选功能中的
App\u Themes
文件夹即可
IIS7->Site->(Ursitename)
,在右侧面板中有“请求过滤”
打开该功能并从中删除App_Themes文件夹。以及刷新和浏览
这不是IIS的事。
<link href="http://pcname/website/file.css" rel="Stylesheet" type="text/css" />
用这个
<link href="file.css" rel="Stylesheet" type="text/css" />
如果没有,那么可能还有一些权限问题。然后您可以在本地浏览
http://local
在浏览http://pcname
您将被识别为远程用户,可能没有访问css文件或文件夹的权限。对捆绑包的HTTP请求可能由IIS而不是MVC框架处理。当包的虚拟路径与文件系统上的实际路径匹配时,可能会发生这种路由冲突
如官方ASP.NET文档()末尾所述:
创建bundle时要遵循的一个好习惯是在bundle名称中包含“bundle”作为前缀。这将防止可能的路由冲突
因此,我建议您重命名捆绑包,确保其名称与网站中的任何路径都不相似
您可以查看这些类似问题的答案:
BundleTable.EnableOptimizations = false;
我修复了在webconfig上评论静态文件处理程序的问题
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
试试看
在bundle config中,确定哪个CSS正在加载,哪个没有加载,然后从那里检查链接到的路径-这是一个开始。如果IIS中没有CSS,请使用“控制面板”中的“程序和功能”小程序检查IIS安装程序中是否安装了静态内容,这让我在IIS 8上绊倒了。你能通过解释调试步骤和得到的结果来改进你的问题吗?您是否尝试过使用Firebug或类似的工具(Chrome/Firefox中的CTRL+ALT+I,IE中的F12)?CSS文件是否从服务器正确下载?如何包含CSS文件?你在使用捆绑包还是什么?@winterlude你看到我的更新了吗?我提到你知道什么了吗?@Slicksim我已经检查了静态内容,它已经安装并检查了谢谢你的回复,你能告诉我在哪里可以找到应用程序主题吗,因为它不存在于我的app@ItShine:实际上,静态地使用css意味着,根据主题它将发生。这样做,您禁用了bundle对调试和发布模式所做的优化!因此,您完全失去了使用它们的优势。此时,通过捆绑包包含CSS和JS毫无意义——直接将它们包含到HTML布局中更容易。如果使用此设置,代码成功运行,则意味着您的问题是由于我在回答中描述的冲突造成的。哦,真的!然后我会尝试你在回答中所说的,我希望它会起作用,但无论如何,非常感谢你的回复
BundleTable.EnableOptimizations = false;