在我的Ember.js 3.8项目中,我有一个图像文件:
/public/assets/images/foo.png
...根据public/assets/images
中放入的this (admittedly a little out of date)文件,当引用为assets/images
时,文件应保持不变。
This是最新的,但不够明确,但表示放置在public
下的项目将最终位于assets
下。
当我进行生产构建时,我在/public/assets/images/
中拥有的文件最终以/dist/assets/images/
带有指纹,例如foo-97cf8c0765aefa517d22e1fc71f43d6e.png
。
我是要明确压制指纹吗?该doco似乎暗示这没有必要吗?
答案 0 :(得分:3)
看看这些ember-cli docs,特别是:
在生产环境中(例如,灰烬生成) --environment = production),该插件会通过向其附加md5校验和,自动对您的js,css,png,jpg和gif资产进行指纹识别 文件名的末尾(例如 资产/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 */]
}
答案 1 :(得分:0)
您可以在fingerprint
中禁用ember-cli-build.js
,如果当前环境为fingerprinting
,则enabled
默认为production
。
// 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();
};
您可以在此link
中找到更多信息