Gruntjs 使用filerev&;时出现文件命名问题;乌斯敏

Gruntjs 使用filerev&;时出现文件命名问题;乌斯敏,gruntjs,yeoman,yeoman-generator,grunt-usemin,Gruntjs,Yeoman,Yeoman Generator,Grunt Usemin,假设我的项目中有两个静态资产(html文件),文件a.html和b.html 文件a.html中有一个指向文件b.html的链接 现在,我运行了一个构建,两个文件的名称发生了更改,一切正常(通过filerev模块)。 现在我只需要在文件b.html->filerev中做一个小的更改,它将在下一次构建中为文件b.html提供一个新名称。由于文件a未更改,因此它将与上一版本同名 现在,在下一次构建中,usemin将转到文件a并修复指向新文件b名称的链接,一切看起来都很好。但并非如此,因为文件a仍然与

假设我的项目中有两个静态资产(html文件),文件
a.html
b.html

文件
a.html
中有一个指向文件
b.html
的链接

现在,我运行了一个构建,两个文件的名称发生了更改,一切正常(通过filerev模块)。
现在我只需要在文件
b.html
->filerev中做一个小的更改,它将在下一次构建中为文件
b.html
提供一个新名称。由于文件a未更改,因此它将与上一版本同名


现在,在下一次构建中,usemin将转到文件a并修复指向新
文件b
名称的链接,一切看起来都很好。但并非如此,因为文件a仍然与上一个版本同名,用户在尝试从a访问文件b时会得到一个断开的链接。

我想一个解决方法是,每次生成随机文件名,而不是对文件名进行哈希运算。

通过这种方式,您可以生成所有文件,因此不会对其进行优化,但可以防止版本之间的缓存问题,同时仍然允许缓存相同版本的浏览器。

使用grunt angular template任务可以解决此问题,因为它将所有模板添加到angular的$templateCache中,因此,当请求模板并且从缓存加载最近的模板时,不会向服务器发出真正的请求。当然,这并不理想,因为在大型应用程序中,您不会希望这样做,因为这可能会增加您的js文件大小