Chrome 对 Rails 5 个预编译资产的审计缓存警告

Cache warnings from Chrome audit on Rails 5 precompiled assets

我 运行 对我的暂存 Rails 5 应用程序(在 Heroku 上生产)进行了 Lighthouse 审核,并且在“诊断[=23”中出现了一些关于我的静态资产的警告=]”部分。

我的初始页面上的所有静态资产都标记为 "Uses inefficient cache policy on static assets",尽管它们显示正确并且指纹正确。

他们的缓存 TTL(生存时间)目前设置为“None”。 (我什至不确定这是真正的问题..)

是否可以轻松解决此问题?或者这可能是 Heroku 上的设置或我的暂存应用程序要更改?或者这可能是一种正常行为...

您的缓存是如何配置的? (即 config.cache_store?)确保您已设置缓存存储,例如 memcached 或 Redis。在 Heroku 之外,人们会使用像 Nginx 或 Apache 这样的 Web 服务器来提供静态内容。在这里,不幸的是,应用服务器也需要做那项工作。

要在当前 Rails 版本中设置适当的 HTTP headers,应该使用 config.public_file_server.headers

config.public_file_server.headers = {
  'Cache-Control' => 'public, max-age=15552000',
  'Expires' => 1.year.from_now.to_formatted_s(:rfc822)
}

在 Rails 的旧版本中,使用 config.static_cache_control:

config.static_cache_control = 'public, max-age=15552000