2

根据Netlify docs for custom headers我可以创建使用自定义标头的路径

# use these headers for the /index.html file
/index.html
  Cache-Control: max-age=31536000, public

但是,我似乎无法弄清楚是否可以让多个路径使用相同的标头,而不必为每个路径创建一个新条目

/*.js
  Cache-Control: max-age=31536000, public

/*.css
  Cache-Control: max-age=31536000, public

我已经尝试了以下方法,但都没有奏效

/*.js /*.css
  Cache-Control: max-age=31536000, public

/*.js
/*.css
  Cache-Control: max-age=31536000, public

/*.js, /*.css
  Cache-Control: max-age=31536000, public
4

1 回答 1

5

免责声明:我为 Netlify 工作。

我们的头文件格式不是那么灵活——每个全局路径都需要一个规则(例如/*.css)。一些有复杂需求的人以编程方式生成文件:

find . -name assets -type d -exec echo "{}/*.css:\n  Header: value" >> public/_headers

或类似的东西。

但是 - 操作缓存控制设置时要非常小心!如本文所述,我们非常谨慎地选择它们:

https://www.netlify.com/blog/2017/02/23/better-living-through-caching/

支持原子回滚和部署。

如果您更改它们,您将获得微不足道的性能提升,但有可能完全取消为回访者更新这些文件的能力。假设您正在使用缓存清除或资产指纹 URL,以便这些 URL 在每次部署和/或内容更改时更改?

无论如何,这甚至不是解决该问题的最佳方法。我们的资产优化已经为您完成了所有这些工作:

  • 在我们的 CDN 上为您创建一个资产指纹 URL(这些资产将从云端加载,而不是您的自定义域)
  • 重写您的内容 (css/js/html) 中的引用以指向这些资产
  • 具有长达一年的缓存标头

这是安全的,因为这些 URL 是资产指纹 - 内容的任何更改都会更改 URL。您在“构建和部署”设置页面底部附近激活此功能,并且在所有帐户级别都是免费的。

我会写信给我们的支持团队以获得更多指导。如果您看到糟糕的性能或您试图在这里克服的问题 - 我们很乐意帮助您解决根本原因,而不是看到您可能会破坏您的网站并造成长期的不良影响。

于 2018-01-25T16:18:50.867 回答