• 请不要在回答技术问题时复制粘贴 AI 生成的内容
nicolazj
V2EX  ›  程序员

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

  •  
  •   nicolazj · Dec 25, 2012 · 4052 views
    This topic created in 4966 days ago, the information mentioned may be changed or developed.
    web上线后,如果资源(js,css)有更新的话,因为有客户端缓存的原因,并不会立即生效。

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

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

    现在一点头绪都没有啊~

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

    感谢各位的回复!

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

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

    http://gruntjs.com
    makefile
    Rake

    任选一中,推荐GruntJS。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   911 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 21:52 · PVG 05:52 · LAX 14:52 · JFK 17:52
    ♥ Do have faith in what you're doing.