【发布时间】:2017-07-29 16:36:43
【问题描述】:
我正在使用 PIXIJS 引擎和 TexturePacker。 为了防止文件缓存我使用:
<script type="text/javascript">
var PIXIJS_VERSION = "4.3.5";
var VERSION = "0.0.7b";
document.write('\<script src="lib/pixi.min.js?v=' + PIXIJS_VERSION + '">\<\/script>');
document.write('\<script src="game.js?v=' + VERSION + '">\<\/script>');
</script>
在我的 game.js 中,我有:
PIXI.loader.add('images/textures.json?v=' + VERSION)
.add('images/fixedsys.xml?v=' + VERSION)
.load(setup);
所以我只是更改 VERSION 变量来强制更新。
问题是textures.json是TexturePacker生成的,它包含:
"image": "textures.png"
而且每次手动甚至通过脚本添加 VERSION 都很不方便:
"image": "textures.png?v=..."
PIXI.loader 只能处理 json 文件或文件名,不能处理对象,我不想为这种愚蠢的情况编写复杂的代码。
我也试过这个来完全防止缓存:
<meta http-equiv="cache-control" content="no-cache, no-store, must-revalidate, post-check=0, pre-check=0">
还有许多其他变体,在某些情况下它们都不起作用。
所以我的问题是为什么缓存如此烦人,是否有一种简单而优雅的方式来处理这个问题?
【问题讨论】:
标签: javascript html json caching