【发布时间】:2025-12-26 20:10:11
【问题描述】:
我们创建了一个 HTML5 应用程序,它也可以在离线模式下工作。 HTML 元素包含 manifest 属性,我们的 manifest 包含所有必要的文件,以便能够离线使用应用程序。我们正在尝试找到一种方法以自动方式缩小我们的 javascript 文件,但也有一个有效的清单文件(无需在缩小后手动编辑清单文件)。大多数情况下,在处理缩小的 javascript 文件时,最好在文件名中使用版本号或查询字符串变量,以确保加载了缩小的 javascript 文件的新版本,但与清单结合使用时效果不佳不支持更改查询字符串变量或不同文件名的文件。
我们已经尝试过 AjaxMin 和 SquishIt,但无法使其正常工作。你们有任何想法或可行的解决方案来使这种组合发挥作用吗?
我们的 HTML:
<html manifest="app.manifest">
我们的清单:
CACHE MANIFEST
NETWORK:
data
CACHE:
scripts/application/application.js
scripts/application/database.js
scripts/application/knockout.extensions.js
scripts/application/main.js
scripts/application/models.js
scripts/application/prototype.extensions.js
etc...
谢谢!
【问题讨论】:
-
我不确定我是否理解;为什么不在缓存清单中简单地列出
all.js(或任何你想调用的名称)? -
如果您更改清单,请确保文件的 SIZE 发生更改。这是因为标准要求重新加载清单文件——连同所有要缓存的项目——当它的 SIZE 与缓存的不同时。我认为不会检查修改时间或其他哈希值。这可能比看起来更困难,因为“VERSION 1”和“VERSION 2”等具有完全相同的字符数,因此更改版本号通常效果不佳。我的诀窍是添加“X”(或某些字符)的注释,并始终在任何新版本的末尾附加一个。
-
为了刷新缓存的项目,您需要重新加载清单文件,如我在上一条评论中所述。否则,即使您的文件同名,浏览器也不会加载新版本,而是继续使用旧的缓存版本。
标签: javascript html minify offline-caching