2017-10-05 52 views
0

我有一個單頁的Web應用程序,我使用版本緩存胸圍腳本和應用程序需要的其他資源,即在Default.htm中我鏈接是這樣的:asp.net核心2靜態文件緩存清除默認文件default.html?

<script src="js/index.js?plv=1.1"></script> 

這工作得很好,但是我的問題碰到的是,default.htm頁面本身被瀏覽器緩存,因此它不會讀取新的default.htm,並且不會觸發更新。

「home」頁面由app.UseDefaultFiles()中間件提供服務。

我在想一個快速和骯髒的方式來解決這個問題,是我發佈的每一個代碼更新,我作爲默認文檔在index.htm和default.htm之間交替,並重命名另一個,所以它不通過UseDefaultFiles中間件獲取。

然而,這是一個手動步驟,當然我會忘記在某些時候做到這一點。

我該如何處理這種情況?

回答

0

的解決辦法是在事後明顯,主頁是輕,沒有理由緩存它在所有:

app.UseStaticFiles(new StaticFileOptions 
      { 
       OnPrepareResponse = context => 
       {     
        if (context.File.Name == "default.htm") { 
         context.Context.Response.Headers.Add("Cache-Control", "no-cache, no-store"); 
         context.Context.Response.Headers.Add("Expires", "-1"); 
        } 
       } 
      });