当我加载View时,为什么IIS不会使用我的_ViewStart和_Layout文件?

时间:2011-07-22 21:02:18

标签: c# .net asp.net-mvc-3

我使用非常标准的设置创建了一个MVC 3应用程序。我的_ViewStart文件指定应该使用_Layout,我的CSS和JS文件包含在_Layout文件中。

当我调试并导航到/ Home / Index时,我的页面看起来与我期望的完全一样。我的网站风格正确,我的所有javascript包括在内。

当我将此站点发布到IIS服务器,然后导航到/ Home / Index时,该站点会加载,但该页面没有样式或javascript。当我查看源代码时,我可以看到所有IIS都直接提供了Index.cshtml,而没有先将它与_Layout结合使用。我无法弄清楚它为什么在调试中工作,但在IIS中却无法解决。这可能是权限问题吗?

解决

我在下面提交了我的解决方案。一旦48小时等待期结束,我会接受它。

3 个答案:

答案 0 :(得分:2)

砰的一声,解决了它。

我的应用程序池作为错误的用户运行。该特定用户没有对我的应用程序目录的读访问权。

它与this post非常相似,但我没有遇到任何错误。

谢谢大家!

答案 1 :(得分:1)

没有看到样式的一种可能性是您为自定义的javascript和CSS文件编写了硬编码,如下所示:

<link href="/Content/MyStyle.css" rel="stylesheet" type="text/css" />

而不是使用网址助手:

<link href="@Url.Content("~/Content/MyStyle.css")" rel="stylesheet" type="text/css" />

以便不再考虑您在IIS中托管应用程序的虚拟目录。

如果您看不到_Layout.cshtml的内容,请确保它已与_ViewStart.cshtml一起部署在IIS中。 IIS没有理由不提供这些文件。

答案 2 :(得分:0)