在我的Ember.js 3.8项目中,我有一个图像文件:
/public/assets/images/foo.png
。根据这个(诚然有点过时),放入public/assets/images
的文件在引用为assets/images
时应该保持不变。
这是最新的,不太明确,但说放置在public
下面的项目最终会低于assets
。
当我进行生产构建时,我拥有的文件/public/assets/images/
最终会/dist/assets/images/
但带有指纹,例如foo-97cf8c0765aefa517d22e1fc71f43d6e.png
.
我的意思是明确禁止指纹吗?doco似乎表明没有必要?
看看这些 ember-cli 文档,特别是:
当环境是生产环境时(例如余烬构建 --environment=production),插件将通过附加 MD5 校验和来自动指纹识别您的 JS、CSS、PNG、JPG 和 GIF 资产 其文件名的结尾(例如 assets/yourapp-9c2cbd818d09a4a742406c6cb8219b3b.js).此外,您的 HTML、JS 和 CSS 文件将被重写以包含新名称。 有几个选项可以传递给EmberApp ember-cli-build.js来自定义此行为。
从指纹识别的角度来看,甚至对图像进行指纹识别也是有意义的,因为您可能需要更改它们并且不想等到缓存 TTL 过期。
您可以删除特定文件
fingerprint: {
exclude: ['assets/images/user.png']
}
或整个文件扩展名
fingerprint:{
extensions: ['js', 'css', /* all the extensions you do want excluding image ones */]
}
您可以在ember-cli-build.js
中禁用fingerprint
,如果当前环境production
,则默认enabled
fingerprinting
。
// ember-cli-build.js
const EmberApp = require('ember-cli/lib/broccoli/ember-app');
module.exports = function(defaults) {
let app = new EmberApp({
fingerprint: {
enabled: false
}
});
//...
return app.toTree();
};
您可以通过此链接找到更多信息