我们有很多人 (10k+) 定期返回我客户的网站,使用我们为他们构建、改进和托管的 Web 应用程序。随着我们的应用程序的改进和发展,我们一直在对网络应用程序的 javascript 进行相当频繁的向后不兼容更新。在部署期间,javascript 被压缩并连接到一个文件中,由 require.js 加载到浏览器中,然后上传到 Amazon S3 并托管在 Amazon S3 上。文件名和 url 目前在更新期间根本不会改变。上周,我们对 Web 应用程序进行了重大重构,并收到了一些(但不是很多)报告,称该应用程序对某些人停止工作,尤其是在 Firefox 中。这似乎是一个缓存问题。我们最初能够在一些浏览器的测试中看到它,但它似乎在一两次刷新后就消失了。
我突然意识到,我真的不知道在 S3 上部署新版本的 javascript 文件(同名)会有什么浏览器缓存后果,以及这种情况是否需要缓存破坏或操纵 S3 的标头或任何东西。有人可以帮我解决这个问题吗?在部署期间我应该采取哪些措施来确保浏览器立即获取新版本的 javascript 文件?如果不是这样,我们将冒 javascript 和服务器 API 不同步和失败的风险,我认为这发生在这里。
不确定这是否重要,但该站点的服务器运行 Django,并且应用程序和数据库已部署到 Heroku。静态文件通过 Django 的 collectstatic 命令使用 S3Boto 部署到 S3。