web 应用上线后,资源更新的问题

2012-12-25 16:48:18 +08:00
 nicolazj
web上线后,如果资源(js,css)有更新的话,因为有客户端缓存的原因,并不会立即生效。

对应这种情况,大家有什么最佳实践吗?

相关的资源都可以共享来看看啊~

现在一点头绪都没有啊~

谢谢啦
3295 次点击
所在节点    程序员
9 条回复
cutehalo
2012-12-25 17:00:46 +08:00
一般都是给js css文件链接的后面加上参数这样
qiayue
2012-12-25 17:01:47 +08:00
给css,js加版本号
cabbala
2012-12-25 17:16:55 +08:00
tornado会自动加版本号,很不错
sarices
2012-12-25 17:18:26 +08:00
在js,css后面加随机数,一般我们都是用版本号的,每次更新了css或者js都有新版本号或者时间,如abc.js?v=201212251414
nicolazj
2012-12-25 18:57:59 +08:00
@qiayue
@cutehalo
@cabbala
@sarices

感谢各位的回复!

我的应用是纯html + ajax后台数据的形式,那么我的js引入都是写死的,比如直接引入aaa.js 。那么我每次都要手工更新这个版本号吗? 有没有工具?脚本?来帮我实现这样子的功能
sarices
2012-12-25 19:08:52 +08:00
@nicolazj 一般编辑器都能替换文本吧,把需要替换的文件都替换就行了
FarBox
2012-12-26 12:44:20 +08:00
@nicolazj 控制一个全局的版本变量,前台在调用资源的时候,补上这个变量就好了。
duhastmich
2012-12-26 12:59:11 +08:00
很多静态html 的话可以用sed,大概这个样子

find . -name "*.html" -print0 | xargs -0 -I{} sed -i 's/?v=[0-9]\+"/?v=$(date +%s)"/g' '{}'
saturn
2012-12-26 13:03:08 +08:00
@nicolazj

http://gruntjs.com
makefile
Rake

任选一中,推荐GruntJS。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/55795

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX