如果没有硬刷新,Sails 不会清除缓存
Sails does not clear cache without hard refresh
我的 Sails 应用程序不更新 javascript 生产文件。
我开始生产了:
NODE_ENV=production forever start app.js
但是当我打开网站时,我没有看到任何变化。即使我重新启动网站。更改仅在使用 ctrl+F5 硬刷新或手动清除缓存后应用。
但在本地有效。
这可能与缓存有关,浏览器不会被强制 update/clear 缓存。如何解决?
我的tasks/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',
]);
};
我不知道下一步该看哪里。
我现在已经修复了:
在 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>'
并且在生产服务器上每次更新资产 i 运行
sails www --prod
然后
NODE_ENV=production pm2 start app.js
这行得通。至少。这每次都会生成新版本的新缩小 javascript 文件,然后浏览器会重新加载。
我的 Sails 应用程序不更新 javascript 生产文件。 我开始生产了:
NODE_ENV=production forever start app.js
但是当我打开网站时,我没有看到任何变化。即使我重新启动网站。更改仅在使用 ctrl+F5 硬刷新或手动清除缓存后应用。
但在本地有效。
这可能与缓存有关,浏览器不会被强制 update/clear 缓存。如何解决?
我的tasks/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',
]);
};
我不知道下一步该看哪里。
我现在已经修复了:
在 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>'
并且在生产服务器上每次更新资产 i 运行
sails www --prod
然后
NODE_ENV=production pm2 start app.js
这行得通。至少。这每次都会生成新版本的新缩小 javascript 文件,然后浏览器会重新加载。