V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
nicolazj
V2EX  ›  程序员

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

  •  
  •   nicolazj · 2012-12-25 16:48:18 +08:00 · 3419 次点击
    这是一个创建于 4376 天前的主题,其中的信息可能已经有所发展或是发生改变。
    web上线后,如果资源(js,css)有更新的话,因为有客户端缓存的原因,并不会立即生效。

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

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

    现在一点头绪都没有啊~

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

    感谢各位的回复!

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

    http://gruntjs.com
    makefile
    Rake

    任选一中,推荐GruntJS。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4891 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 09:48 · PVG 17:48 · LAX 01:48 · JFK 04:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.