SPA nginx try_files 深度优化
上周有幸帮朋友解决一个线上用户端缓存不更新的问题。问题的表现在项目某次发版后,用户端访问页面提示 JS 报错。报错表明是 JS 返回的是 HTML 代码。
经过一番查看后,发现是用户端在发版的时候有访问过,而像 app.afds320.js 这些 JS 还不存在。命中了 localtion / { try_files } 规则。再加上 CDN 上有些默认的配置,给该 HTTP status 200 的文件加了 cache-control: max-age=7d 的缓存时间。导致用户端只要不强刷新或清缓存,这个文件就在7天内一直有问题了。
这个问题其实就是缓存配置的不合理导致的问题,我们应该适当的利用浏览器缓存、CDN 缓存来优化我们的项目。
