我的项目有一项功能可以覆盖主题文件夹中的视图和内容(如果存在)。 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或其他文件进行任何显着的更改。任何帮助表示赞赏!
答案 0 :(得分:4)
一位同事发现了这个问题。当我设置Themes文件夹时,我从Views中复制了web.config,它有以下选项:
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
我们将路径属性的值从*更改为* .cshtml,现在可以访问这些文件。
答案 1 :(得分:1)
我无法评论,所以我在这里发帖。你有匹配网址的路线吗?尝试使用RouteDebuger来查看命中的路线。
答案 2 :(得分:0)
您是否检查过文件系统中基础文件夹的权限?根据我的经验,这通常是无法通过URL访问资源的原因 - 网站使用的凭据可能无法授予对底层资源的访问权限