1

我有一个 Rails 3.2.3 应用程序,在文件存储中有一个非常大的缓存。需要 30 分钟才能清除整个缓存。我正在尝试迁移应用程序以使用资产管道。

发现运行rake assets:precompile实际上会清除缓存(请参阅assets.rake 的 3.2.3。考虑到清除整个事物所需的时间,我认为每次需要部署时都清除缓存并不是一个好主意。

  • 资产管道是否涉及缓存?
  • 为什么要清除它,因为所有内容都编译到 public/assets 文件夹中?如果我只缓存片段怎么办?
  • 有没有一种方法可以在不访问文件存储缓存的情况下使用管道(并且每次部署时都不会清除缓存)?

提前致谢!

4

1 回答 1

0

经过一段时间的思考,我意识到每次更新图像时清除缓存是非常安全的(有时是不可避免的) 。

如果config.assets.digest = true,那么当更新图像时,缓存页面/片段中的图像链接需要更新和破坏,以便使用新图像。如果资产被清理,缓存清理失败将导致死链接,或者直到浏览器丢失缓存。

至于 javascripts 和样式表,清除缓存的原因是更新链接application.jsapplication.css文件。但是如果我们小心不要将源代码缓存到 JS 和 CSS 文件中,那么清除缓存是多余的。

不这样做会导致使用旧的 JS 和 CSS 文件。

于 2012-12-21T08:22:51.477 回答