我最近发现c:/Users/username/AppData/Local/AppName/Cache
包含超过100K的缓存文件。
我读了一下,发现gui.App.clearCache()
方法应该解决这个问题。
我在应用程序的启动和关闭时执行此方法。 (在将gui分配给require("nw.gui")
)
然而,这似乎没有帮助。什么都没有被删除。
为什么会这样?
答案 0 :(得分:4)
需要缓存显然仅在global.require.cache
上可用。
手动清除缓存使它对我有用。
for(module in global.require.cache){
if(global.require.cache.hasOwnProperty(module)){
delete global.require.cache[module];
}
}
location.reload()
gui.APP.clearCache()
和gui.Window.get().reloadIgnoringCache()
对我都没有任何影响。
答案 1 :(得分:0)
遇到同样的问题所以我创建了一个快速的解决方案来暂时解决问题,直到我可以依赖原生的gui.App.clearCache函数。这将删除整个Cache目录并异步重新创建它。
这需要fs-extra,并且应该适用于Linux,OSX和Windows。
var customClearCache = function(){
var dir = path.join(gui.App.dataPath, '/Cache');
fs.remove(dir, function(err) {
if (err) return console.error(err)
fs.mkdirs(dir, function(err) {
if (err) return console.error(err)
// This is where I start my app
});
});
};
答案 2 :(得分:0)
现在是2019年,clearCache()可以通过添加以下内容来起作用:
var gui = require('nw.gui');
gui.App.clearCache();
或
nw.App.clearCache();
这将清除内存中的HTTP缓存和磁盘上的HTTP缓存,无论您使用哪种平台。我已经在Mac OS上进行了测试,但是在Linux上可能存在用户权限问题。
在MacOS上,您可以实时检查
中的缓存文件夹是否已清空。MacHD▸Users▸youruser▸Library▸Caches▸yourapp▸Default