无法找到主题文件夹内的内容的资源

时间:2011-10-31 17:38:28

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

我的项目有一项功能可以覆盖主题文件夹中的视图和内容(如果存在)。 themes文件夹的路径因站点而异,因此我的文件夹结构如下所示:

Themes\
    SiteA\
        Content\
            Images\
                logo.png
            screen.css
        Views\
            Home\
                Index.cshtml

我可以使用网站的自定义覆盖成功覆盖默认视图。但是,我无法访问主题的Content文件夹中的任何内容。如果我直接在http://localhost:port/Themes/SiteA/Content/screen.css访问该文件,则无法找到该资源。当我尝试访问images文件夹中的任何内容时,我也会收到此错误。去年,一位同事能够为一个单独的项目做到这一点,但是我找不到任何对web.config或其他文件进行任何显着的更改。任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:4)

一位同事发现了这个问题。当我设置Themes文件夹时,我从Views中复制了web.config,它有以下选项:

<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />

我们将路径属性的值从*更改为* .cshtml,现在可以访问这些文件。

答案 1 :(得分:1)

我无法评论,所以我在这里发帖。你有匹配网址的路线吗?尝试使用RouteDebuger来查看命中的路线。

答案 2 :(得分:0)

您是否检查过文件系统中基础文件夹的权限?根据我的经验,这通常是无法通过URL访问资源的原因 - 网站使用的凭据可能无法授予对底层资源的访问权限