我试图解决我的Angular网站中的一个问题,当我添加一个页面或进行更改时,由于缓存,它不会显示给用户。做了一些阅读后,我明白我想做的是创建一个指纹。
我看了看周围,似乎grunt-asset-fingerprint可以做到这一点。我已经下载了该软件包并尝试运行它。然而,我有两个问题:
- 它似乎只复制一个文件到资产Map文件(事实上,这是我的冰授权文件),我会认为它会复制所有的?
- 我不知道下一步该怎么做,我需要在文件名中添加指纹来避免缓存问题吗?我在网上找不到太多的文档。
任何帮助都将非常感谢!我的grunt配置的相关部分和assets.json文件的输出如下。谢谢!!
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
assetFingerprint: {
options: {
algorithm: 'md5',
},
dist: {
src: ["dist/**/*"],
dest: "dist/"
},
}
});
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-clean');
grunt.loadNpmTasks('grunt-processhtml');
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-contrib-htmlmin');
grunt.loadNpmTasks('grunt-newer');
grunt.loadNpmTasks('grunt-asset-fingerprint');
};
字符串
assets.json
{
"dist/": "./dist-dec2ce4621028dc1bd5g081ea11d1aff"
}
型
2条答案
按热度按时间gkl3eglg1#
我可以使用以下结构成功地将哈希值附加到app.js文件中:
字符串
这也将更新index.html文件中对app.js的引用。你必须确保
files
块中使用的路径与你的目录结构一致。iecba09b2#
参考grunt-rekai,这可以解决文件重命名,并有更多的选项.
https://www.npmjs.com/package/grunt-rekai