2016-08-18 84 views
1

我有使用Aurelia編寫的單頁應用。它效果很好。如何確保頁面在單頁面應用中刷新

但是,當我推出更新時,有時很難讓瀏覽器刷新緩存頁面,因此它顯示的是較舊的版本。

試過了,刷新瀏覽器,控制F5。

也把這個index.html中

<meta http-equiv="Pragma" content="no-cache"> 
<meta http-equiv="Expires" content="-1"> 
<meta http-equiv="CACHE-CONTROL" content="NO-CACHE"> 

的頭但當system.js取,上述會有什麼影響單個組件,我不認爲。

+0

所以,當你正在開發一切或用戶可能會「工作」舊版本時,這是一個問題嗎? – kabaehr

+0

最終用戶只有一個問題。但我找到了答案並將發佈。 –

回答

1

經過一番搜索之後,我發現了this,它解釋瞭如何使用SystemJs進行緩存。

var systemLocate = System.locate; 
     System.locate = function(load) { 
     var System = this; 
     return Promise.resolve(systemLocate.call(this, load)).then(function(address) { 
      if(address.lastIndexOf("html.js") > -1) return address; 
      if(address.lastIndexOf("css.js") > -1) return address; 
      return address + System.cacheBust; 
     }); 
     }; 
     System.cacheBust = '?bust=' + Date.now(); 

     System.import('aurelia-bootstrapper');