当我在生产模式下部署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/