2017-01-23 41 views
0

爲了強制更新的靜態資產從頑固的CDN加載,我正在尋找一種方法,將我的src="assets/...引用中的每一個app/index.html都公佈爲唯一文件名,以保持CDN分發的新鮮。Ember爲CDN新鮮度發佈唯一的資產文件名?

也許index.html中:

<link rel="stylesheet" href="assets/vendor.css?version={{content-for 'version'}}"> 

然後別的地方我可能會覆蓋定製content-for值與隨機數或構建標籤。

想法?謝謝!

+0

[Fingerprinting](https://ember-cli.com/user-guide/#fingerprinting-and-cdn-urls)應該有幫助,你試過了嗎? –

+0

我要去試試Ember Fingerprinting,謝謝!我相信這就是答案。 – charneykaye

回答

1

答案是Ember fingerprinting

它在生產中默認啓用:

ember build --environment=production 

這將導致(線等)以下的的index.html和相應的資產文件名:

<link rel="stylesheet" href="assets/vendor-d41d8cd98f00b204e9800998ecf8427e.css" integrity="sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= sha512-z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg==" > 

要啓用指紋默認情況下適用於所有環境,請將此添加到您的ember-cli-build.js

// ember-cli-build.js 
var app = new EmberApp({ 
    fingerprint: { 
    enabled: false 
    } 
}); 
0

我想你可以通過配置你的ember-cli-build.js文件來做到這一點。此文件的默認值如下所示:

// ember-cli-build.js 
var app = new EmberApp({ 
    outputPaths: { 
    app: { 
     html: 'index.html', 
     css: { 
     'app': '/assets/application-name.css' 
     }, 
     js: '/assets/application-name.js' 
    }, 
    vendor: { 
     css: '/assets/vendor.css', 
     js: '/assets/vendor.js' 
    } 
    } 
}); 

看一看在ember-cli user guideconfiguring output paths部分。

+0

這成功地更改了輸出文件的名稱,但不*更改index.html的內容,因此它將我留在了我開始的位置。我相信Ember指紋是答案,但還沒有得到它。 – charneykaye