Nginx 代理 url 到指纹样式表

Nginx proxy url to fingerprinted stylesheet

我正在尝试将 nginx 用作由 jekyll 站点提供的编译资产的代理,因为我在多个站点和应用程序之间共享其中一些资产。我想要一个 /css/main.css 作为代理或重写为 /assets/main-*.css (其中 * 是相对频繁更改的指纹)。这是我目前的方向:

rewrite ^/css/main.css$ /assets/main-(.*).css last;

但这不起作用 (returns 404)。任何人都知道如何编写此代码以对样式表 url 的指纹部分使用某种通配符或正则表达式?或者有更好的方法来做到这一点?

部署完成后的sym link解决问题:

ln -sf /your/dir/assets/main-*.css /your/dir/css/main.css

在任何情况下,您都会遇到缓存问题,因为指纹识别往往可以解决该问题。 E-Tag 可以提供帮助,但文件在从服务器传输到浏览器的过程中可能会缓存在某个地方。