作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在运行一个 Rails 5.1 站点,该站点利用 Assets 管道在部署时生成散列(指纹) Assets 。为了优化性能,我们的 Assets 从服务器生成,然后在第一次请求时缓存到 AWS Cloudfront。
当我们部署时,我们会进行滚动部署。我们使用新代码启动新服务器,并在新服务器上线时终止使用旧代码的服务器。在部署期间的任何给定时间,如果有 Assets 请求,任何服务器(新的或旧的)都可以响应请求,因为它们都在同一个 AWS Application Load Balancer 上。
例如,我们有两个 Assets 文件:
最佳答案
我能够通过将我们的 Assets 部署到 S3 来解决这个问题。运行后rails assets:precompile
, 复制 public/assets
和 public/packs
进入S3。然后,您可以将您的 Cloudfront 源设置为您放置 Assets 的 s3 存储桶。
当您进行滚动部署时, admin-2d1d6c00a49c.js
和 admin-aac83de85860.js
将可以在您的 CDN 上访问。
见:https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html#concept_S3Origin
关于ruby-on-rails - 在 Rails 滚动部署上使用带有 CDN 的散列 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50181725/
我是一名优秀的程序员,十分优秀!