我正在使用sails.js资产链接器.
我通过在其中添加资产版本来对我的资产进行版本控制,如下所示:
assetfile.js?=<%= assetVersion %>
不幸的是,这不起作用,因为js文件名正被链接器取代!
sails.js链接器是否支持解决此问题?还是我自己离开了攻击grunt文件?
如果您从git存储库托管,则可以使用git commit sha来标识版本.
我用这个方法在我的项目之一,它由加入以下作为的rename.js要tasks/config
var git = require('git-rev')
module.exports = function(grunt) {
git.short(function(hash) {
var files = {
'.tmp/public/min/production.' + hash + '.min.js': '.tmp/public/min/production.min.js',
'.tmp/public/min/production.' + hash + '.min.css': '.tmp/public/min/production.min.css'
}
grunt.config.set('rename', {
dist: {
files: files
}
})
})
grunt.loadNpmTasks('grunt-rename')
};
Run Code Online (Sandbox Code Playgroud)
然后tasks/register/prod.js在链接器任务之前添加重命名任务.
基于@CaseyWebb的解决方案,我们扩展了sails应用程序以解决带有时间戳的版本控制问题。这里还有一个非常详细的博客条目:https : //naya.com.np/post/391862c0520b5b5632e99e812749a85b