Asp.net-Mvc

記憶體 CSS 和 JS 文件

  • September 27, 2016

當我在 2-3 分鐘內刷新我的網站時,Firebug 會顯示這些不錯的請求:

1. /core.css          304 Not modified
2. /core.js           304 Not modified
3. /background.jpg    304 Not modified

但是當我在 > 3 分鐘後刷新時,我得到:

1. /core.css          200 OK
2. /core.js           200 OK
3. /background.jpg    304 Not modified

為什麼我的 CSS 和 JS 文件被再次下載,而圖像卻沒有?

我正在使用 ASP.NET MVC 3,我不使用[OutputCache],並且在我的/Content文件夾中(所有 css、js 和 img 文件都位於子文件夾中)我有這個 Web.config:

<configuration>
   <system.webServer>
       <staticContent>
           <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
       </staticContent>
   </system.webServer>
</configuration>

僅設置 HTTP 標頭Cache-Control: max-age=86400。所以基本上 CSS、JS 和圖像被以相同的方式處理,但不知何故 CSS 和 JS 不會被記憶體更長的時間……這是為什麼呢?

希望這會有所幫助:http ://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache

<clientCache>元素的元素<staticContent>指定 IIS 7 及更高版本發送到 Web 客戶端的記憶體相關 HTTP 標頭,這些標頭控制 Web 客戶端和代理伺服器如何記憶體 IIS 7 及更高版本返回的內容…

IIS 或 Visual Studio Web 伺服器會發生這種情況?一段時間以來,在開發(使用 VS Web 伺服器)時感知到了這種行為,但是在 IIS 中發布它時不再發生這種情況。

引用自:https://stackoverflow.com/questions/3644748