V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
teemoer
V2EX  ›  Java

那么问题来了,各位大神 J2EE 怎么解决浏览器缓存的呢?请指教

  •  
  •   teemoer · 2016-06-17 10:27:42 +08:00 · 2849 次点击
    这是一个创建于 3080 天前的主题,其中的信息可能已经有所发展或是发生改变。

    引用静态文件的时候 这样处理 加上版本号?v=文件最后修改时间

    <%=WebCacheAutoVersion.AutoVersion(path,root,"/assets/scripts/slider.js")%>

    public class WebCacheAutoVersion { public static String AutoVersion(String path, String root, String fileName) { File file = new File(path, fileName); if (file.exists()) { return root + fileName + "?ver=" + file.lastModified(); } else { return root + fileName + "?ver=1"; }

    }
    

    } 问题是我在每个 jsp 文件中只要引入 JS 文件都会手动去 <%=WebCacheAutoVersion.AutoVersion(path,root,"/assets/scripts/slider.js")%> 这样设置文件路径

    有没有办法其他更好的办法,很快让人上手并投入使用的呢?

    13 条回复    2016-06-18 15:38:28 +08:00
    teemoer
        1
    teemoer  
    OP
       2016-06-17 10:28:20 +08:00
    上图:
    rason
        2
    rason  
       2016-06-17 11:20:00 +08:00
    自定义标签
    wwqgtxx
        3
    wwqgtxx  
       2016-06-17 12:18:36 +08:00 via Android
    palmers
        4
    palmers  
       2016-06-17 12:35:05 +08:00
    ```javascript
    src="../js/security.js?version=${applicationScope.version}"

    ```
    teemoer
        5
    teemoer  
    OP
       2016-06-17 15:04:05 +08:00
    @palmers = = 这个还是需要在 每一个引入文件的地方尾巴后面加上${applicationScope.version} ......
    teemoer
        6
    teemoer  
    OP
       2016-06-17 15:05:12 +08:00
    @rason = = 那样还是得把之前的 导入 js 的代码 一个个改哇
    jason19659
        7
    jason19659  
       2016-06-17 15:18:45 +08:00
    服务器设置不缓存
    SoloCompany
        9
    SoloCompany  
       2016-06-18 03:42:01 +08:00
    比较简单的做法是起一个特殊名字的目录存放静态资源,比如 asset/@@version@@/
    打包把整个字符串替换同时目录更名
    但建议还是上前端工程吧
    julor
        10
    julor  
       2016-06-18 06:43:44 +08:00 via Android
    你们居然不用前段工具?! gulp 送上
    mifly
        11
    mifly  
       2016-06-18 11:06:34 +08:00
    为什么要关掉浏览器缓存呢?

    如果只是为了测试,设置浏览器不用缓存,或者打开开发者工具,在 network 那里可以关掉缓存
    teemoer
        12
    teemoer  
    OP
       2016-06-18 15:37:36 +08:00
    @mifly 我现在 的情况是 服务器更新程序了 但是因为 有些客户的电脑有缓存 不会更新一些 js 文件 导致网页有问题.是这样的
    teemoer
        13
    teemoer  
    OP
       2016-06-18 15:38:28 +08:00
    @jason19659 = = 你没开玩笑吧 用户量一大 服务器能扛得住?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3229 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:41 · PVG 18:41 · LAX 02:41 · JFK 05:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.