ruby-on-rails C nginx没有在Rails静态资产上设置expires头
发布时间:2023-12-17 23:44:07 所属栏目:Nginx 来源:DaWei
导读: 我似乎无法让nginx在我的Rails应用程序中的静态资产上设置expires标头.
我的应用程序使用Phusion Passenger& nginx的.
下面是我的nginx配置文件的相关部分
server {
listen 80;
我的应用程序使用Phusion Passenger& nginx的.
下面是我的nginx配置文件的相关部分
server {
listen 80;
我似乎无法让nginx在我的Rails应用程序中的静态资产上设置expires标头. 我的应用程序使用Phusion Passenger& nginx的. 下面是我的nginx配置文件的相关部分 server { listen 80; server_name my.domain.tld; root /home/deploy/my.domain.tld/current/public; passenger_enabled on; access_log off; location ~* .(ico|css|js|gif|jp?g|png)?[0-9]+${ expires max; break; } if (-f $document_root/system/maintenance.html) { rewrite ^(.*)$/system/maintenance.html break; } }我不确定为什么它的设置不会在我的静态资产上过期(例如/images/foo.png?123456) 我不确定它是否与乘客有关,或者我的位置regexp是不是没有抓住它 最佳答案 只是想指出使时间戳可选是一个坏主意 – 如果它没有包含,那么设置expires max是错误的,因为没有办法刷新文件.此外,Nginx中的location指令无法查看查询字符串,因此此处发布的解决方案永远不会匹配“可选”时间戳. 一个适当的解决方案(即只有在使用时间戳请求文件时才发送最大值的解决方案)将是: location ~* .(js|css|png|jpg)${ if ($query_string ~ "^[0-9]+$") { expires max; break; } }如果未指定时间戳,则依赖于Last-Modified和ETag,它们由Nginx自动处理. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 网络应用程序 – 在同一服务器上运行Tornado和Nginx
- 亚马逊网络服务-Aurelia,Docker,Nginx,AWS Elastic Beansta
- ubuntu – 在stderr中发送的FastCGI:无法打开主脚本
- linux – 如何在nginx中列出所有vhosts?
- 如何在Nginx上使用FastCGI运行Perl脚本?
- ruby-on-rails – 压缩rails资产和nginx gzip
- nginx – RoR 5.0.0 ActionCable wss WebSocket握手:意外的
- 如何在nginx错误日志中获取perl脚本错误(Nginx with FCGIwr
- 如何允许特定IP到Nginx中的URL(而不是目录!)
- nginx try_files处理两次,如果设置了错误回退,则会失败
推荐文章
站长推荐