Neo*_*ang 5 deployment continuous-integration memcached caching web
在我们的Web应用程序中,我们有一个包含许多组件的Web页面,每个组件都使用来自DB的数据进行渲染,服务器端缓存用于存储生成的组件以供将来请求使用.我们还为整个页面维护了一个全局"最后修改"的时间戳,这是此Web上任何数据(在数据库中)的最后一次更改,如果浏览器缓存具有新版本,我们将返回304 HTTP响应.
总之,我们使用服务器端缓存和客户端缓存来提高性能.
在我们考虑部署新代码之前,这一切都很好.当部署新代码(比如html)时,不仅客户端缓存无效,还必须清除服务器端缓存.我们必须将最后修改的时间设置为代码部署时间,并清除服务器端缓存中的所有内容.如果我们定期部署代码,这是不太理想的.由于页面数据库中的数据不会定期更改,因此我们希望缓存能够长时间运行.但是部署新代码却违背了我们的目的.
在这种情况下我们该怎么做?这里有"行业最佳实践"吗?
对于我的项目,当我更改文件(例如 css 文件)时,我会在包含该文件的位置添加一个参数。例如,
<link href='default.css?1' type='text/css' rel='stylesheet'>
Run Code Online (Sandbox Code Playgroud)
每次您希望重新加载文件而不是从缓存中提取文件时,请更改该数字。