求教问题: 用版本号更新 css 和 js 文件, 具体细节?

2015-02-13 14:28:40 +08:00
 douDouDragon

看到文章里说直接在html中引用css时, 直接在文件名后面做处理,比如:

原来的引用:
<link rel="stylesheet" type="text/css" media="screen" href="/css/index.css">

更新的引用:
<link rel="stylesheet" type="text/css" media="screen" href="/css/index.css?v=1.1">

问题是, 我只需要在html里面这样处理了, 不用改css源文件的文件名,还是 index.css ?
求教!谢谢啦

3997 次点击
所在节点    问与答
13 条回复
Sivan
2015-02-13 14:31:45 +08:00
不用改 css 文件名。
xenme
2015-02-13 14:37:40 +08:00
这个应该主要是刷新缓存的目的吧。
douDouDragon
2015-02-13 14:41:24 +08:00
@Sivan 那我需要的操作就两步: 1. 在html里面加上版本号. 2. 在服务器上直接用新文件直接覆盖源文件就行了?
douDouDragon
2015-02-13 14:41:50 +08:00
@xenme 恩恩, 目的就是这个
xenme
2015-02-13 14:44:05 +08:00
@douDouDragon 是的,直接覆盖,然后加版本号,让浏览器重新缓存就好了。
douDouDragon
2015-02-13 14:53:12 +08:00
@xenme 明白了,谢啦哈
belin520
2015-02-13 15:05:39 +08:00
建议用增加文件MD5方式去部署更新前端资源
app_xxx.js / app_xxx.js

这样每次上线,先上线静态资源,它不会覆盖线上文件,然后再上线html页面,就能切换资源了,如果是?xxxx的形式,无论先上线静态资源还是先上线html,都会导致短暂的出错
文件都是md5戳做非覆盖式发布,静态资源设置10年的强缓存,用户永远不用更新同一个md5戳的文件,性能非常好,缓存策略也非常简单
yushiro
2015-02-13 15:43:30 +08:00
@belin520 这方法不错
douDouDragon
2015-02-13 16:07:35 +08:00
@belin520 这方法感觉蛮周到的!
但有个小地方还不清楚, 那这样更新的本质,其实是变了源文件的文件名, html也是引用新文件吧? 然后用更新策略去减小对在线用户的影响?
thisnull
2015-02-13 16:27:46 +08:00
belin520
2015-02-13 16:34:25 +08:00
@douDouDragon 前端工程化当然需要前端工具来实现自动化啦
FIS: http://fis.baidu.com/

欢迎大家入坑!
douDouDragon
2015-02-13 17:04:52 +08:00
@thisnull 恩,正拜读.
douDouDragon
2015-02-13 17:06:49 +08:00
@belin520 恩,玩玩看. 结果你这是硬广告啊. 哈哈

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

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

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

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

© 2021 V2EX