【问题标题】:How to leverage browser caching in Rails 4?如何在 Rails 4 中利用浏览器缓存?
【发布时间】:2017-01-19 12:20:29
【问题描述】:

我正在使用 GTMetrix 查看我的网站速度,它正在向我展示这一点(查看下图)。

如何利用浏览器缓存来加快 Rails 4 中的网站加载速度?

为了延迟解析JS,我已经放了

<%= javascript_include_tag 'application' %>

在 /html 标记之前。

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    我建议使用单独的 Web 服务器,例如 NGINX 来为 .js 和 .css 文件设置缓存头,从而消除从 Rails 提供静态文件的麻烦。

    如果您真的想使用纯 Rails (app/web) 服务器,解决方案是将这段代码放入 config/environments/production.rb

    铁路 5

    config.public_file_server.headers = {
      'Cache-Control' => "public, s-maxage=#{365.days.to_i}, maxage=#{180.days.to_i}",
      'Expires' => "#{1.year.from_now.to_formatted_s(:rfc822)}"
    }
    

    铁路 4

    config.static_cache_control = "public, s-maxage=#{365.days.to_i}, maxage=#{180.days.to_i}"
    

    【讨论】:

    • 这是 Rails 5 ONLY 解决方案吗?看起来很stackoverflow.com/questions/34126366/…,R4 有类似的东西吗?
    • Rails 4(和 5)的建议是使用 CDN。除此之外,将config.static_cache_control 设置为config/environments/production.rb
    • @ErvalhouS 您能否将您的答案发布到 CDN 上?
    • 您能否问一个单独的问题,向我展示“使用 CDN 回答”的含义,并评论它的链接?我很乐意回答。 @KickButtowski
    • 你也可以使用更惯用的:'Cache-Control' =&gt; "public, s-maxage=#{365.days.to_i}, maxage=#{180.days.to_i}"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    相关资源
    最近更新 更多