如题。用 F12 可以看到服务端返回 304 状态码,问题是服务端文件已经更新了啊。
服务端是 nginx-1.11.8 ,配置文件里只指示浏览器缓存 js css 图片文件。
但是诡异的是,指示了缓存的这些文件却没有缓存,每次访问还是发送请求,服务端返回 200
下面是完整配置文件
server { server_name n4l.pw www.n4l.pw; listen 80; location ^~ /.well-known/acme-challenge/ { alias /home/wwwroot/challenges/; try_files $uri =404; } location / { rewrite ^/(.*)$ https://n4l.pw/$1 permanent; } } server { server_name n4l.pw www.n4l.pw; listen 443 ssl http2 reuseport fastopen=3; root /home/wwwroot/hexo; server_tokens off; ssl_ct on; ssl_certificate /root/ssl/fourstring/n4l.pw.rsa.pem; ssl_certificate_key /root/ssl/fourstring/n4l.pw.rsa.key; ssl_ct_static_scts /root/ssl/fourstring/scts/rsa; ssl_certificate /root/ssl/fourstring/n4l.pw.ecc.pem; ssl_certificate_key /root/ssl/fourstring/n4l.pw.ecc.key; ssl_ct_static_scts /root/ssl/fourstring/scts/ecc; ssl_dhparam /root/ssl/fourstring/dhparams.pem; ssl_ciphers EECDH+CHACHA20:ECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5; ssl_prefer_server_ciphers on; ssl_ecdh_curve secp384r1; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:50m; ssl_session_timeout 1d; ssl_session_tickets on; ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s; resolver_timeout 10s; add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains; preload'; add_header Public-Key-Pins 'pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=";pin-sha256="Fbs+o+IxVNTHBpjNQYfX/TBnxPC+OWLYxQLEtqkrAfM=";max-age=2592000; includeSubDomains'; index index.html; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ { expires 30d; access_log off; } location ~ .*\.(js|css)?$ { expires 7d; access_log off; } } (很多配置是学习了 ququ 大神的配置方法)
就我的了解来看,实际上就只有最后两段 location 是缓存,但是指定的这些缓存文件类型却没有被处理。
网站地址: https://n4l.pw 感谢您的回答。
