2017-04-04 20 views
1

我想根据文件类型将响应添加到响应中。如果文件类型是.js或.css,我想要做的是将缓存控制标题添加到响应中。由于某种原因,我在Application_BeginRequest中看不到带有.js,.css文件类型的文件。我在Application_BeginRequest中放了一个断点,并尝试查看Request.Url.LocalPath,并且没有任何请求用于.js或.css文件。我确信该页面已链接到.js和.css。我在Chrome Dev Tool中看到了.js和.css文件的请求,只是我无法在Application_BeginRequest中看到这些文件的请求。Application_BeginRequest不显示.js和.css文件的请求

我也努力刷新我的页面(Ctrl + F5),以确保浏览器不从缓存请求这些文件。

回答

2

这很可能是因为您没有配置.net管道,例如这些静态文件进入管道。这些静态文件很可能是由您的web服务器(可能是IIS)直接提供的,并且它们的请求不会进入您的asp.net请求管道。

假设您正在使用集成管道模式,您可以让它们进入管道,并添加到web.config中。在<system.webServer><handlers>部分,你可以补充一点:

<add name="js-files--use-integrated-pipeline" path="*.js" verb="GET,HEAD" type="System.Web.StaticFileHandler" resourceType="Unspecified" preCondition="integratedMode"/> 
    <add name="css-files--use-integrated-pipeline" path="*.css" verb="GET,HEAD" type="System.Web.StaticFileHandler" resourceType="Unspecified" preCondition="integratedMode"/> 

有了这个此外,你将看到的请求进入到Application_BeginRequest

还有其他方法可以添加自定义标题。您可以查看可在<system.webServer><httpProtocol><customHeaders>部分的web.config中设置的设置。

相关问题