My Sails应用程序不会更新生产中的javascript文件。 我正在开始生产帆:
NODE_ENV =生产永远启动app.js
但是当我打开网站时,我没有看到任何变化。即使我重新启动网站。只有在使用ctrl + F5进行硬刷新或手动清除缓存后,才会应用更改。
但在当地它有效。
这可能是缓存,浏览器不会强制更新/清除缓存。怎么解决?
我的任务/ config / sails-linker.js:
grunt.config.set('sails-linker', {
devJs: {
options: {
startTag: '<!--SCRIPTS-->',
endTag: '<!--SCRIPTS END-->',
fileTmpl: '<script src="%s?v='+ new Date().getTime() +'"></script>',
appRoot: '.tmp/public'
},
files: {
'.tmp/public/**/*.html': require('../pipeline').jsFilesToInject,
'views/**/*.html': require('../pipeline').jsFilesToInject,
'views/**/*.ejs': require('../pipeline').jsFilesToInject
}
},
因为我没有在制作中使用sails lift
,所以我将grunt默认更改为:
/tasks/register/default.js
module.exports = function (grunt) {
grunt.registerTask('default', [
'compileAssets',
'linkAssetsBuildProd',
'watch',
'concat',
'uglify',
'cssmin',
'sails-linker:prodJs',
'sails-linker:prodJsJade',
]);
};
我不知道下一步该去哪儿。
答案 0 :(得分:4)
我现在已经解决了这个问题:
on tasks / config / sails-linker.js添加了这个:
module.exports = function(grunt) {
var time = new Date().getTime();
grunt.config.set('sails-linker', {
然后在
的每一行都改变了fileTmpl: '<script src="%s"></script>'
到
fileTmpl: '<script src="%s?v='+ time +'"></script>'
在每次使用资产进行更新的生产服务器上运行
sails www --prod
然后
NODE_ENV=production pm2 start app.js
这很有效。至少。这会生成每个新的缩小的javascript文件和新版本,然后浏览器重新加载。