【问题标题】:How do I dynamically create cached assets that allow browser cacheing in Ruby on Rails?如何在 Ruby on Rails 中动态创建允许浏览器缓存的缓存资产?
【发布时间】:2014-01-23 02:40:00
【问题描述】:

我有一个 Web 应用程序,它使用填充了数据的 .js 文件来驱动前端。这些文件可能很大,所以我希望浏览器缓存它们。它们是所有用户都可以使用的静态数据,因此我还希望对它们进行页面缓存,因为它们的创建可能很耗时。

驱动它们的数据在后端随机变化。因此,当数据发生变化时,我想使服务器页面缓存和用户浏览器缓存失效,从而导致刷新。

该应用程序还具有大量静态资产,我们使用带有预编译的资产管道在生产中提供它们(无动态编译)。

如何对这些文件进行页面缓存,以便在不影响完整 Rails 堆栈和浏览器缓存的情况下快速将它们提供给所有用户...但在需要更新时也使两者失效。

【问题讨论】:

    标签: ruby-on-rails ruby caching


    【解决方案1】:

    也许就这么简单

    javascript_include_tag 'jquery.js', 'jquery-ui.js', :cache => 'cached/all'
    

    看看Rails API about caching,Jammit gem 也可能有用。

    【讨论】:

    • 我认为这适用于静态文件——但如果文件在应用程序运行时发生更改,我认为这不会奏效。会吗?
    • 在机架级别定义的缓存,因此如果检测到更改,它将重新缓存文件,尽管这在生产模式下不应该是问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 2019-04-20
    • 2013-04-15
    • 2015-04-18
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多