Ember 为 CDN 新鲜度发布唯一资产文件名?
Ember publish unique asset filename for CDN freshness?
为了强制从顽固的 CDN 加载更新的静态资产,我正在寻找一种方法来在 app/index 中发布我的每个 src="assets/...
引用。html 到唯一的文件名,以保持 CDN 分发新鲜。
也许在 index.html:
<link rel="stylesheet" href="assets/vendor.css?version={{content-for 'version'}}">
然后在其他地方我可能会用随机数或构建标记覆盖自定义 content-for
值。
想法?谢谢!
我想您可以通过配置 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'
}
}
});
看看configuring output paths section of the ember-cli user guide。
它在生产中默认启用:
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
}
});
为了强制从顽固的 CDN 加载更新的静态资产,我正在寻找一种方法来在 app/index 中发布我的每个 src="assets/...
引用。html 到唯一的文件名,以保持 CDN 分发新鲜。
也许在 index.html:
<link rel="stylesheet" href="assets/vendor.css?version={{content-for 'version'}}">
然后在其他地方我可能会用随机数或构建标记覆盖自定义 content-for
值。
想法?谢谢!
我想您可以通过配置 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'
}
}
});
看看configuring output paths section of the ember-cli user guide。
它在生产中默认启用:
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
}
});