余烬资产-“公共”资产不应该被指纹识别,但是应该被指纹识别吗?

时间:2019-05-27 06:17:08

标签: ember.js build

在我的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似乎暗示这没有必要吗?

2 个答案:

答案 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

中找到更多信息