2017-04-04 21 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中設置的設置。

相關問題