nginx 浏览器缓存不起作用

nginx 浏览器缓存不起作用

我有以下问题。

我正在使用 nginx 服务器。为了正确提供图片,我添加了以下位置规则:

location /images/ {
   alias /srv/mysite/images/;
   autoindex off;

}

一切正常。但如果我添加浏览器缓存(找到这里

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
} 

未提供任何图片

有人能帮忙吗?谢谢。

编辑

完整配置如下:

server {
#listen 80 is default
server_name www.mysite.com;
return 301 $scheme://mysite.com$request_uri;
  }
server {
listen   80;

server_name mysite.com;
access_log /var/log/nginx/mysite.com.log;
error_log /var/log/nginx/mysite.com.err;

location / {
    include uwsgi_params;
    uwsgi_pass unix:///var/uwsgi/mysite.com.node1.sock;
}

location = /robots.txt {
    alias /srv/mysite.com/robots.txt;
}

location /m/ {
    alias /srv/mysite.com/node1/static/;
    autoindex off;
    expires max;
}

location /upfiles/ {
    alias /srv/mysite.com/upfiles/;
    autoindex off;
}

##
# Gzip Settings
##

gzip on;
gzip_disable "msie6";

gzip_comp_level 6;
#gzip_comp_level 9;
gzip_min_length  1100;
gzip_buffers 16 8k;
gzip_proxied any;
# gzip_http_version 1.1;
gzip_types       text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss;



####
##Browser Cache
####

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
} 


}

答案1

您没有使用默认的根指令,因此您应该/alias srv/mysite/images/;在 location 指令中添加。Nginx 将在那里找到文件,并使用适当的过期标头(您的配置中为 30 天)传递给客户端

相关内容