2011-10-31 73 views
0

我的项目具有覆盖主题文件夹中的视图和内容(如果存在)的功能。在主题文件夹的路径将通过网站有所不同,所以我的文件夹结构是这样的:找不到主题文件夹内的资源

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

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

回答

3

一位同事发现了这个问题。当我安装的主题文件夹,我的意见,这有这个选项复制的web.config:

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

我们从*到* .cshtml改变路径属性值和文件现在都可以访问。

+1

这太棒了!你为我节省了很多时间! – k25

0

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

+0

我看不到任何权限差异。文件夹和CSS文件是在Visual Studio中创建的,我以前没有访问过它们的问题;但是,这些文件位于脚本或内容文件夹中,而不是我自己的主题文件夹,其权限与内容相同。 – Mathachew

1

我不能发表评论,所以我发帖这里。你有一个路线匹配的网址?尝试使用RouteDebuger查看命中的路线。

+0

我将这个http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx添加到了项目中,它能够为我提供工作URL的路由状态,但不能为我的文件主题文件夹。它继续告诉我无法找到资源。这必须是一些迹象,但我不确定目前的情况。 – Mathachew

+0

你有任何主题子目录中的web.config?此外,你在VS/IIS中测试网站吗? – MikeSW

+0

我不得不因为我们使用的剃刀,这最终成为了问题的根本原因(感谢我的同事)到web.config文件添加到根主题文件夹。我已经在下面发布了答案。 – Mathachew