浏览器默认缓存了 hexo 的静态页面,即使我上传了新的文件也不会自动更新,如何解决? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fourstring
V2EX    Hexo

浏览器默认缓存了 hexo 的静态页面,即使我上传了新的文件也不会自动更新,如何解决?

  •  
  •   fourstring 2017-01-14 22:45:45 +08:00 4714 次点击
    这是一个创建于 3258 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题。用 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:EECDH+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 感谢您的回答。

    12 条回复    2017-01-16 13:15:16 +08:00
    lbp0200
        1
    lbp0200  
       2017-01-14 22:55:52 +08:00
    expires 30d;
    是什么?
    fashioncj
        2
    fashioncj  
       2017-01-14 23:32:04 +08:00
    ctrl+F5 。。强制刷新就好了。。

    或者。。 F12 清空缓存。。
    fourstring
        3
    fourstring  
    OP
       2017-01-15 13:35:13 +08:00
    @lbp0200 设置对应后缀名的资源的过期时间
    fourstring
        4
    fourstring  
    OP
       2017-01-15 13:35:31 +08:00
    @fashioncj 作为站长当然可以强制刷新,然而用户并不懂啊
    402645707
        5
    402645707  
       2017-01-15 23:48:34 +08:00 via Android
    这个和服务端缓存无关
    你发给客户端的 max-age 太高了
    fourstring
        6
    fourstring  
    OP
       2017-01-16 08:35:06 +08:00
    @402645707 max-age ??那是 HSTS 和 HPKP 的缓存时间啊,跟页面无关吧?用的是 Preload List 的推荐值啊
    402645707
        7
    402645707  
       2017-01-16 10:30:00 +08:00 via Android
    @fourstring 建议 f12 看看 http header 中的 max-age
    fourstring
        8
    fourstring  
    OP
       2017-01-16 10:44:49 +08:00
    @402645707 我看了一下 header ,涉及到 max-age 的只有 HSTS 和 HPKP ,都是 HTTPS 的安全选项,和页面内容缓存无关
    content-encoding:gzip
    content-type:text/html
    date:Mon, 16 Jan 2017 02:43:42 GMT
    etag:W/"587a2ebf-4a42"
    last-modified:Sat, 14 Jan 2017 13:59:27 GMT
    public-key-pins:pin-sha256="YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=";pin-sha256="Fbs+o+IxVNTHBpjNQYfX/TBnxPC+OWLYxQLEtqkrAfM=";max-age=2592000; includeSubDomains
    server:nginx
    status:200
    strict-transport-security:max-age=31536000; includeSubDomains; preload
    vary:Accept-Encoding
    fourstring
        9
    fourstring  
    OP
       2017-01-16 10:45:45 +08:00
    @402645707 也就是没有 cache-control 头
    402645707
        10
    402645707  
       2017-01-16 11:14:57 +08:00 via Android   1
    @fourstring 没有的话就加一个缓存时限
    fourstring
        11
    fourstring  
    OP
       2017-01-16 12:52:00 +08:00
    @402645707 好的,我试试
    fourstring
        12
    fourstring  
    OP
       2017-01-16 13:15:16 +08:00   1
    @402645707 问题解决,非常感谢!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5125 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 05:52 PVG 13:52 LAX 21:52 JFK 00:52
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86