【发布时间】:2017-10-22 08:10:12
【问题描述】:
我想在每次部署我的页面时加载我的 javascript、css、html 等的新版本。我看到我可以将?<version> 添加到脚本的 src 链接中,还有其他新的/更可靠的方法吗?
更新 我正在寻找类似变量的东西,如果加载了新文件,我可以自动更新 URL,而不是手动重命名文件。这可能吗?
【问题讨论】:
标签: javascript php css caching
我想在每次部署我的页面时加载我的 javascript、css、html 等的新版本。我看到我可以将?<version> 添加到脚本的 src 链接中,还有其他新的/更可靠的方法吗?
更新 我正在寻找类似变量的东西,如果加载了新文件,我可以自动更新 URL,而不是手动重命名文件。这可能吗?
【问题讨论】:
标签: javascript php css caching
将资源的最后编辑时间添加到资源元素的 src/href,或者如果您链接到可能包含子目录等的聚合脚本,则添加所有相关时间的 MD5。
http://verens.com/2008/04/09/javascript-cache-problem-solved/
【讨论】:
我认为一种优雅的方法是使用 gulpfile 重命名您的 *.css 和 *.js 文件名,以在末尾包含文件内容的哈希。
1) Gulp 库:处理文件名
https://github.com/sindresorhus/gulp-rev
它的作用示例:将文件名 unicorn.css 转换为 unicorn-d41d8cd98f.css
2) Gulp 库:处理 index.html 包含
要注入 css 和 js,您可以使用另一个 gulp librairie :
https://www.npmjs.com/package/gulp-inject
这允许您使用文件目录在 index.html 中自动包含 css 和 js。
3) 你必须做什么
您所要做的就是创建一个使用这两个库的 gulp 任务。我发誓这并不难。我没有足够的时间做演示(我会在接下来的几天内做)。
这个解决方案有两个优点:
【讨论】: