簡體   English   中英

在asp.net中的Javascript和css緩存

[英]Javascript and css caching in asp.net

我知道這個問題被問過很多次,最常見的答案是:

  1. 使用.htaac​​cess文件自動進行版本控制。
  2. 雖然根本不建議這樣做,但使用版本號作為查詢參數例如:'/ scripts / script1?v = 1.0.0'。 這將導致瀏覽器不緩存文件但完成工作。

我正在處理一些發布后問題,因為我們不遵循軟件項目生命周期,所以我們會在測試和修復問題時更新網站。 因此,我們可能需要每天多次更新網站,而不是一周更新。

我不確定是否有一種方法我仍然可以利用緩存,同時不需要讓用戶刷新頁面/清除緩存以查看最新的更改。

有沒有辦法在asp.net中實現.htaac​​cess解決方案,如果這是我需要做的事情?

我非常感謝任何幫助。

這是我用於css文件的解決方案,但應該適用於JS:在htaccess中有一個規則:

RewriteRule ^(.*)_ver_.*(\..*)$ $1$2 [NC,L]

這需要一個文件名,如“Style_ver_12345.css”,並將其重寫為Style.css。

然后當你包含文件時,將實際文件的File.GetLastWriteTime(filePath).Ticks.ToString()就是我的工作方式File.GetLastWriteTime(filePath).Ticks.ToString()為版本號。 我將擁有的示例文件名是Style_ver_634909902200823172.css

這將確保文件中的任何更改將立即導致新的版本號,而物理文件不需要具有不同的名稱,並且文件將由瀏覽器緩存。

用戶仍然需要刷新頁面,但他們不必清除緩存。 如果你需要,也許你可以通過ajax調用強制刷新,該調用將比較加載的腳本的版本號和服務器上的版本號。 然后,服務器上的較新版本可以強制刷新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM