V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
nutting
V2EX  ›  问与答

前端页面改动时缓存的问题

  •  
  •   nutting · 2020-12-23 09:59:00 +08:00 · 973 次点击
    这是一个创建于 1233 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在有个老项目,本来是在 html 里加了 no-cache 什么的想干脆不缓存一直也没管用,后来我就把入口换成 jsp,每次项目更新时,整个跳转到一个新的 context,客户端浏览器就肯定强制刷新了。
    最近尝试在前面加了一层 nginx,后面是原来的 tomcat,并且做了静态分离。这个爽啊,header 加 expires 可以强制过期了。不过据说还能有根据文件修改时间自动失效的功能?但是我的服务器发现是 CST 时区(没权限调整),好像时间上错位呢,达不到效果。

    这样的话,设置 expire 诺干小时,然后只在基本没人访问的夜里更新,一般第二天所有用户就都没问题了。在加上这个项目的用户比较特殊,应该是用的时候就集中用一小会,expire 设置成几小时问题不大,不影响体验。

    但是总觉得不完美,一方面是老项目,肯定做不到打包时候文件都加后缀随机串了。另外就是 nginx 那个判断 Last-Modified 自动根据文件变化失效到底管用吗?谁这方面有成熟经验。
    4 条回复    2020-12-23 10:42:37 +08:00
    w292614191
        1
    w292614191  
       2020-12-23 10:02:03 +08:00
    nginx 肯定没问题,你是 jsp 就要去看 tomcat 或者部署容器。
    nutting
        2
    nutting  
    OP
       2020-12-23 10:34:55 +08:00
    哦,我知道了,没问题。不加 expires,返回的是 304,这个代码也是一种缓存
    nutting
        3
    nutting  
    OP
       2020-12-23 10:37:30 +08:00
    看来 http 的基础还得学学啊
    Delbert
        4
    Delbert  
       2020-12-23 10:42:37 +08:00
    你说 v 站在 url 上加 #reply3 #reply4 是干啥,不也是接近浏览器缓存问题么,同时达到 url :visited 区分是否访问过的目的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3371 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:04 · PVG 20:04 · LAX 05:04 · JFK 08:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.