2015-09-02 50 views
1

我有一個使用AngularJS,oclazyload,ui-router,bootstrap等的Web應用程序,我將在未來發布更新,而且我需要以確保瀏覽器不會繼續顯示緩存的資源,即使有更新的版本可用。如何在版本更改時重新加載資源(HTML/CSS/JS)

爲此,我每次創建新構建時都配置了我的Gruntfile(使用grunt-replace,grunt-prompt和grunt-bump)將版本號附加到index.html中的每個URL。

這工作得很好,但因爲我使用的UI路由器和oclazyload,我有很多的資源需求懶洋洋地和僅載入的,所以我想實現一個角的Http攔截器的版本號追加到每一個XHR URL。但是,這會弄亂模板腳本(如<script type="text/ng-template" id="menu-item.html"></script>)。我確實添加了一些條件來避免這種情況,但是它感覺很不方便,而且很容易出錯。

在Angular,vanilla JS,Grunt或其他方式中是否有任何傻瓜解決方案/最佳實踐?

在此先感謝!

回答

1

可以lazyload資產不緩存:只需設置緩存參數

您還可以設置數組或單個文件的緩存屬性。

有兩種方法可以爲加載函數定義配置選項。您可以使用第二個可選參數來定義您將加載的所有模塊的配置,或者您可以爲每個模塊定義可選參數。 例如,這些是等價的(除了前兩個文件將不會在第一示例中高速緩存):

$ocLazyLoad.load([{ 
    files: ['testModule.js', 'bower_components/bootstrap/dist/js/bootstrap.js'], 
    cache: false 
},{ 
    files: ['anotherModule.js'], 
    cache: true 
}]); 

$ocLazyLoad.load(
    ['testModule.js', 'bower_components/bootstrap/dist/js/bootstrap.js', 'anotherModule.js'], 
    {cache: false} 
); 
相關問題