【问题标题】:Accessing static content of an ASP.Net MVC project with IIS7使用 IIS7 访问 ASP.Net MVC 项目的静态内容
【发布时间】:2009-06-23 10:59:54
【问题描述】:

我已经在我的本地 IIS 7 上创建了一个网站,并在其根目录上使用了我自己的 ASP.Net MVC 项目。

除静态内容外,一切正常。转到http://localhost:8080/Content/Site.css 给我一个 404。我可以在 IIS 管理器上看到该文件夹​​。

当您在 Visual Studio 2008 上运行应用程序时,您获得的小型开发服务器可以很好地提供内容。有什么想法可能是错误的吗?

【问题讨论】:

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


    【解决方案1】:

    问题是权限。即使当我创建 IIS7 网站时,我告诉它以我的用户身份访问文件(否则它根本无法工作),对于静态文件,它正在使用应用程序池的用户。授予对 IIS APPPOOL\MyApplication 对我的项目解决问题的文件夹的访问权限。

    【讨论】:

    • 我以前在玩弄 SQLite 时见过这个。
    【解决方案2】:

    怎么样

    routes.RouteExistingFiles = true;
    

    在您的 Global.asax 中?

    【讨论】:

    • Global.asax.cs 中的内容没有帮助。 ASP.Net MVC模板被破坏是这样的吗?我期待的是配置问题,而不是编码问题。谢谢。
    • 默认是路由所有现有文件。当我在 Visual Studio 中创建新的 MVC 应用程序时,我可以访问 /Content 中的所有静态文件。你只需要找到谁更改了默认设置以及在哪里;)
    • 我在使用开发服务器时也可以访问 Content 中的静态文件,但在部署到 IIS7 时不能访问。
    • 我只使用 IIS7 进行开发...您是否在另一台使用 IIS7 的机器上尝试过这个?
    • 我没有任何其他装有 IIS7 的机器,我不确定我做了什么,但在这样做并删除此行之后它开始工作。
    【解决方案3】:

    尝试转到http://localhost:8080/../../Content/Site.css,不确定您的原始 URL 是否与路由匹配。

    虽然不是真正的编程问题。

    【讨论】:

    • 它没有路径,它是静态内容。该 URL 被转换为 localhost:8080/Content/Site.css
    • 你说得对,我自己没试过。如果您将 css 的副本移动到站点的根目录中,那么您可以加载它吗?
    • 不,我无法在任何地方访问静态内容。不是 CSS 或文件夹(我已启用索引)。
    • 很高兴看到您找到了解决方案,您应该将其标记为答案。
    猜你喜欢
    • 2016-07-19
    • 2021-08-19
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 2021-03-19
    • 2017-11-08
    • 1970-01-01
    相关资源
    最近更新 更多