【问题标题】:No styles / images on asp.Net MVC 2 applicationasp.Net MVC 2 应用程序上没有样式/图像
【发布时间】:2012-02-16 21:31:38
【问题描述】:

问候

我的 ASP MVC 应用程序有一点问题。 在我的本地开发服务器上,一切正常,但是当我尝试将应用程序发布到 IIS 7.0 服务器时,它只显示没有任何样式/标记/图像的普通页面。

我把所有这些东西都放在 /Content/ 子文件夹中,但是当我尝试访问生产服务器上的那个文件夹时,它只会返回一个 404 not found 错误。

我使用 .Net 4.0 设置 IIS 服务器并遵循此处的部署指南:http://www.asp.net/learn/mvc/tutorial-08-cs.aspx

所有视图/控制器/类似乎都可以正常工作,唯一不正常的是内容子文件夹,我不明白为什么。

有人对我可能忽略的问题提出建议,或者有人知道这个问题吗?

【问题讨论】:

  • 如果您尝试从浏览器直接导航到 CSS 文件会怎样?
  • 你如何引用你的静态文件?相对还是绝对?您的应用程序是如何在 IIS 上配置的?作为根网站还是作为其他网站中的应用程序文件夹?

标签: iis-7 asp.net-mvc-2


【解决方案1】:

我遇到了同样的问题,但我找到了强制对 Contents 文件夹进行身份验证的原因。

当用户尚未登录时,他们被归类为匿名身份验证。在 IIS7 中(这是我正在使用的,猜测在 IIS6 中是相同的),您需要在功能视图中打开身份验证窗口。然后编辑匿名身份验证,以使用您的应用程序池身份或默认身份,只需确保用户有权读取该文件夹。

这对我来说已经解决了,希望它对你有用。

【讨论】:

  • 谢谢你,真正的解决方案!
【解决方案2】:

嗯,我把IIS_IUSRs添加到项目目录,发现同样的问题:
CSS 不会加载,内容文件夹中也没有任何内容。
但它解决了Unable to start debugging on the web server 问题。
然后,我将IUSR 添加到同一个文件夹中,从而解决了问题。现在,我可以看到图像、css 样式和所有这些东西了。

【讨论】:

  • 当我分享我的 wwwroot forlder(为另一个用户)时,它删除了 IUSR 设置!在这个错误上失去了几个小时。谢谢。
【解决方案3】:

这是因为您可能在 src 上使用了固定路径,例如:../../Content/Styles/style.css。在 MVC 中,您应该使用 Url 助手:Url.Content("~/Content/Styles/style.css")

使用 Url 助手应该没有问题。

【讨论】:

    【解决方案4】:

    用这个整晚都在拉我的头发。

    在 W2K8、MVC2、.NET 4.0 和 IIS 7 上(使用 VS 2010)

    确保 IIS_IUSRS 拥有对根文件夹的完全权限,但仍然无法使用 - css、js、图像在呈现页面时仍然无法访问......

    然后……就这么简单:

    在站点的功能视图中 - 为 .js、.css 和 .jpg 定义了 MIME 类型 - 瞧!

    甜!

    附言我的第一个 mvc 应用程序 - 我想我很喜欢它......

    【讨论】:

      【解决方案5】:

      检查您的内容文件夹的属性...查看它们是否由于某种原因没有“在本地复制”。

      【讨论】:

      • 刚刚检查过...所有内容都被复制得很好...似乎以某种方式将现有文件的路由弄乱了。我使用的是默认路由,它实际上应该解决这个问题,还是我弄错了?
      【解决方案6】:

      您的虚拟目录指向的文件夹提供给用户“全部”读取属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-05-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-03
        相关资源
        最近更新 更多