应该为CSS和JS文件调用Global.asax.cs Application_BeginRequest吗?

时间:2012-02-01 09:36:21

标签: asp.net-mvc-3

在ASP.NET MVC3中,我注意到我的CSS和JS文件也调用了Application_BeginRequest。我的CSS和JS文件分别驻留在/ Content和/ Scripts文件夹中。

这是对的吗?是否真的需要这些文件通过托管代码管道?

该站点在IIS7(和ASP.NET Web服务器)上运行。

我的模块配置部分如下所示:

<modules runAllManagedModulesForAllRequests="false">
  <remove name="UrlRoutingModule-4.0" />
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
  <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
</modules>

2 个答案:

答案 0 :(得分:0)

您应该检查this answer。很可能你有同样的问题。如果没有,那么我会检查您的管道模式+处理程序配置。

更新:抱歉,只是看到你已经[runAllManagedModulesForAllRequests =“false”]。您是否使用某些分析器或自定义虚拟路径提供程序? 在我的例子中,我使用自定义虚拟路径提供程序来提供嵌入到程序集中的文件。为此,为几个子目录创建了特殊配置。

答案 1 :(得分:0)

自己回答:最后我无法想出一种不让静态文件通过MVC管道的方法。所以我选择了一个hacky解决方案,我在Application_PostAuthenticateRequest中检查URL扩展,并在请求静态内容时返回(即“.css”,“。js”等)。

不漂亮。