Ember.js 余烬资产—“;“公众”;资产不应该被提取指纹,但它们是吗?

Ember.js 余烬资产—“;“公众”;资产不应该被提取指纹,但它们是吗?,ember.js,build,Ember.js,Build,在我的Ember.js 3.8项目中,我有一个图像文件: /public/assets/images/foo.png 。。。根据放置在公共/资产/图像中的文件,当引用为资产/图像时,应保持不变 是最新的,有点不太明确,但表示放置在public下的项目最终将位于资产下 当我进行生产构建时,我在/public/assets/images/中拥有的文件会以/dist/assets/images/结束,但带有指纹,例如foo-97cf8c0765aefa517d2e1fc71f43d6e.png 我是不

在我的Ember.js 3.8项目中,我有一个图像文件:

/public/assets/images/foo.png

。。。根据放置在
公共/资产/图像中的文件,当引用为
资产/图像时,
应保持不变

是最新的,有点不太明确,但表示放置在
public
下的项目最终将位于
资产

当我进行生产构建时,我在
/public/assets/images/
中拥有的文件会以
/dist/assets/images/
结束,但带有指纹,例如
foo-97cf8c0765aefa517d2e1fc71f43d6e.png


我是不是要明确禁止指纹?文档似乎暗示这是不必要的?

您可以在
ember cli build.js
中禁用
fingerprint
,如果当前环境是
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();
};

通过此

您可以在
ember cli build.js
中禁用
指纹
,如果当前环境是
生产
,默认情况下,
指纹
已启用

// 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();
};
更多信息,请参见以下内容:

当环境是生产环境时(例如,ember build --environment=production),该插件将通过向您的js、css、png、jpg和gif资产添加md5校验和,自动为您的js、css、png、jpg和gif资产添加指纹 文件名的结尾(例如。 资产/yourapp-9C2CBD818D09A742406C6CB8219B3B.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 build --environment=production),该插件将通过向您的js、css、png、jpg和gif资产添加md5校验和,自动为您的js、css、png、jpg和gif资产添加指纹 文件名的结尾(例如。 资产/yourapp-9C2CBD818D09A742406C6CB8219B3B.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 */]
}

使用
exclude
,您还可以排除目录(不仅仅是特定文件)。例如,
exclude:['assets/images']
要排除
assets/images
中的所有文件(或更具体的-文件路径包含
assets/images
),使用
exclude
,您还可以排除目录(不仅仅是特定文件)。例如,
exclude:['assets/images']
以排除
资产/图像中的所有文件(或更具体地说-文件路径包含
资产/图像的位置