为了账号安全,请及时绑定邮箱和手机立即绑定

Nginx下设置不缓存静态文件不起作用?

Nginx下设置不缓存静态文件不起作用?

PHP
holdtom 2019-03-10 16:54:11
现在开发中,调整css,js,img,css中的img时会一直使用缓存文件,无法显示改动!Nginx配置静态文件add_header Cache-Control no-cache;也不起作用,很苦恼!求大神指点迷津!下面上代码 Nginx配置 events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; # gzip_vary on; # gzip_proxied any; # gzip_comp_level 6; # gzip_buffers 16 8k; # gzip_http_version 1.1; # gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ## # Virtual Host Configs ## include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } 这是具体配置的server server { listen 80 ; server_name tp.co admin.tp.co; root /code/think/public; index index.php; location ~.*\.(js|css|png|jpg)$ { root /code/think; add_header Cache-Control no-cache; } location / { if (!-d $request_filename) { rewrite ^/(.*)/(.*)/*$ /index.php?m=$1&a=$2 last; rewrite ^(.*)$ /index.php?s=$1 last; break; } } location ~ \.php { #去掉$ fastcgi_pass unix:/run/php/php7.1-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(.*)$; #添加 fastcgi_param PATH_INFO $fastcgi_path_info; #添加 } } 项目css文件,img,js全在public/static下面css路径 <link href="/public/static/css/admin/index/login.css" rel="stylesheet" type="text/css" media="all"/> css样式中的img的url body{ background: url('public/static/img/admin/index/login/banner.jpg')repeat; padding:101px 0px 30px 0px; font-family: 'Roboto', sans-serif; font-size: 100%; } 这是浏览器报错 这是查看源代码得到的css文件内容 有木有大神知道为什么呀?!快疯了 ...
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

MD,终于解决了!使用virtualBox虚拟机,安装的nginx,不管怎么修改js,css文件,怎么强制刷新设置不缓存,都不管用,原因在于sendfile on;;这个配置在nginx.conf,将sendfile on;改为sendfile off;;再ctrl+F5,OK!完美解决!!

查看完整回答
反对 回复 2019-03-18
?
慕容708150

TA贡献1831条经验 获得超4个赞

更好的做法是加版本号,而是控制缓存头
如:

<link href="/public/static/css/admin/index/login.css?v=1.2" rel="stylesheet" type="text/css" media="all"/>

每当css做出修改时,增加版本号, 版本号可以定义成全局的变量,一外修改即可。

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 3797 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信