我们目前使用Jenkins将代码部署到我们的生产Web服务器。它将所有相关的源和SCP解压缩到服务器,然后远程解压缩然后重新启动apache(我们正在使用APC,这样就清除了PHP缓存)。
该网站是由AJAX驱动的,当用户与网站交互时,很少有浏览器刷新。在进行这种类型的代码推送时,如果浏览器没有刷新,我担心用户没有获得前端代码的最新更改。因此,我们会在深夜这样做,以确保我们的大多数用户都不在网站上。
有哪些常用技巧可以缓解此问题?如果我们需要在白天部署代码并且用户在网站上处于活动状态,则这是不可持续的。可以对此部署过程进行的任何其他改进吗?
谢谢!
答案 0 :(得分:1)
这听起来不像部署过程那样与应用程序/站点一样。
要检查的第一件事是Web服务器的配置,以确保“Expires”/“Cache-Control”标头都设置为合理的值,这样您就不会在文件上设置1年的缓存时间您可能每周(甚至每天)更换一次。
在应用程序中可以完成的下一件事是在JavaScript中包含一个检查。每个HTTP响应(AJAX或其他)都可以返回带有版本号的自定义HTTP标头。如果重新部署应用程序,则应用程序/服务器必须在该字段中发送新版本号。如果JavaScript检测到版本号已在会话中更新,则它可以向用户显示消息和/或强制重新加载页面。