如何设置哈希文件名的最大有效期?

问题描述 投票:1回答:1

我们应该如何设置nginx-expires只针对名字中包含哈希的文件?

例如,angular构建过程会输出。

enter image description here

例如,angular构建过程会输出: where:

  • ngs-worker.js (非哈希值文件名)不能被缓存。
  • polyfills-es5.3eb4a9891f4a514281f1.js 等。可永久缓存

现在,我知道我可以为所有的缓存设置最大的到期时间 js 文件,并排除一些文件(如 ngs-worker.js)但当我忘记了一个非哈希文件,或者未来的版本会产生更多的非哈希文件时,这将是灾难性的。

我们应该如何处理这个问题?也许可以使用 检索词 来查找所有的哈希文件?

angular nginx cache-control
1个回答
0
投票

我们使用一个regex来查找所有名称中包含20个字符的哈希值的文件(用点包围)。

# e.g. 'polyfills-es5.3eb4a9891f4a514281f1.js'. 'roboto-v18-latin-300.815babffe97b00a1f30b.woff2', ..
location ~* "\.[a-f0-9]{20}\." {
  access_log off;
  expires max;
}

请注意,必须引用位置的regex--请看这个。所以回答

© www.soinside.com 2019 - 2024. All rights reserved.