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

2016-06-17 10:27:42 +08:00
 teemoer

引用静态文件的时候 这样处理 加上版本号?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")%> 这样设置文件路径

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

2849 次点击
所在节点    Java
13 条回复
teemoer
2016-06-17 10:28:20 +08:00
上图:
rason
2016-06-17 11:20:00 +08:00
自定义标签
wwqgtxx
2016-06-17 12:18:36 +08:00
palmers
2016-06-17 12:35:05 +08:00
```javascript
src="../js/security.js?version=${applicationScope.version}"

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

如果只是为了测试,设置浏览器不用缓存,或者打开开发者工具,在 network 那里可以关掉缓存
teemoer
2016-06-18 15:37:36 +08:00
@mifly 我现在 的情况是 服务器更新程序了 但是因为 有些客户的电脑有缓存 不会更新一些 js 文件 导致网页有问题.是这样的
teemoer
2016-06-18 15:38:28 +08:00
@jason19659 = = 你没开玩笑吧 用户量一大 服务器能扛得住?

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

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

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

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

© 2021 V2EX