余烬资产 - "public"资产不应该被指纹识别,但它们是?



在我的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,则默认enabledfingerprinting

// 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();
};

您可以通过此链接找到更多信息

相关内容

最新更新