Ruby on rails Nginx匹配具有md5哈希的rails资产

Ruby on rails Nginx匹配具有md5哈希的rails资产,ruby-on-rails,nginx,md5,sprockets,Ruby On Rails,Nginx,Md5,Sprockets,我的rails应用程序有一些从rails资产管道中排除的文件,因此文件名中没有md5哈希。但我想为链轮预编译的所有资产添加一个最大年限标题1y。如何仅在链轮预编译的资产上选择性地设置“最大年龄”标题 我想到的一件事是,由于md5哈希值总是33个字符(我通过检查哈希值的长度来测试它),也许我可以有一个正则表达式,它匹配文件名中破折号后的33个字符。谁能告诉我怎么做?其他想法 以下是示例文件名 application-cb61c25ef6120a3100f6c5774c26e2ad.js app

我的rails应用程序有一些从rails资产管道中排除的文件,因此文件名中没有md5哈希。但我想为链轮预编译的所有资产添加一个最大年限标题1y。如何仅在链轮预编译的资产上选择性地设置“最大年龄”标题

我想到的一件事是,由于md5哈希值总是33个字符(我通过检查哈希值的长度来测试它),也许我可以有一个正则表达式,它匹配文件名中破折号后的33个字符。谁能告诉我怎么做?其他想法

以下是示例文件名

application-cb61c25ef6120a3100f6c5774c26e2ad.js  
application-cb61c25ef6120a3100f6c5774c26e2ad.js.gz  
arrows-df2013a3aca5b91d70cf0aac7a5d6994.png  
ip-icon-731b22bd05d1c61d4f0074e69f942707.png  
编辑:
我为nginx conf设计了如下内容:

location ~ ^/assets/.+-[0-9a-f]{32}\.(jpg|jpeg|gif|css|png|js|ico|svg|woff|ttf|eot|map)(.gz)? {
  expires 1y;
  add_header Cache-Control public;

  add_header ETag "";
  break;
}

md5散列也由0-9a-f组成。所以你可以匹配“*-[33charsofmd5]\”,这样就可以了。不知道效率有多高。谢谢我想出的@PhilipHallstrom。评论?在这里实现了你的建议Nginx抱怨了
{
所以我在它前面加了一个“`但是它没有将最大年龄设置为1y:(在正则表达式周围加上双引号有效。所以,我终于有了
location~”^/assets/+-([0-9a-f]){32}(jpg | jpeg | gif | css | png | js ico | svg | woff | ttf | eot | map)(\.gz>