ruby-on-rails - 在Rails生产中消除缓存破坏

标签 ruby-on-rails deployment caching

当我在生产模式下部署Rails应用程序时,它会将日期时间字符串作为查询参数附加到所有静态 Assets url的末尾。这是为了防止浏览器在我重新部署应用程序后使用过期的 Assets 副本。

有没有一种方法可以使Rails使用自上次部署以来未更改的 Assets 的旧时间戳记(而仅保留未更改的 Assets )。我要这样做是为了防止用户不得不重新下载那些未更改的 Assets 。

最佳答案

我认为您可以使用ENV ['RAILS_ASSET_ID']更改缓存无效 Assets ID。不幸的是,这适用于所有 Assets 。

但是,如果未设置,它将使用 Assets 的源修改时间。如果该文件自您上次使用以来没有被修改过,那应该不是问题。

如果在未更改 Assets ID的情况下对其进行更改,则可能是由于您的部署过程更改了修改时间,也许您可​​以考虑对其进行调整。

最后,您始终可以override rails_asset_id with your own custom method

希望这可以帮助。

关于ruby-on-rails - 在Rails生产中消除缓存破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/183017/

相关文章:

ruby-on-rails - 如何检查日期是否有效?

ruby-on-rails - 如何修复 'warning: constant::Fixnum is deprecated'错误

asp.net - 分步 ASP.NET 自动构建/部署

.net - 什么是缓存AppData\Local\assembly\dl3?

ios - 在 Web View Swift 3.3 中清除缓存

ruby-on-rails - 等效的 HMAC SHA-512 key

mysql - Rails/MySQL 兼容性

django - 为什么我需要同时定义 STATIC_URL 和 STATICFILES_DIRS?

javascript - 如何正确部署 Angular 应用程序(基于ngBoilerplate并使用nginx)?

node.js - CircleCI 没有缓存我全局安装的 Node 模块?