服务器nginx部署PHP项目样式不出来要注意的小问题

服务器使用nginx部署PHP项目的时候如果样式没有 出来,那么很可能 location 块里出问题了。 比如

location  / {
   root  /home/wwwroot/default/php_project;
   fastcgi_pass 127.0.0.1:9000;
   fastcgi_index  index.php;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   include fastcgi_params;  
}

这样配置之后访问项目,能够访问,但是样式怎么没有了?难道是代码里css, js文件没有引入成功吗?并不是。(当然不排除CSS和js引入失败的情况,如果本地测试的时候有样式,部署服务器之后没有样式了。就不是这个原因)看nginx配置的代码发现,匹配规则是 / ,而配置文件里只有这一个location块,也就是说所有的请求都转发给了PHP处理,包括静态文件。那么肯定出不来样式。如何改nginx的配置呢?看下面(也可以写匹配静态文件的location 块,自行选择)

location / {
  root /home/wwwroot/default/php_project;
  index  index.html  index.htm ;
}

#php 的单独写一个匹配location,这样让静态文件走location /{}
location ~* \.php {
  fastcgi_pass 127.0.0.1:9000;
  fastcgi_index  index.php;
  fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
  include  fastcgi_params;
}
  • 当然样式不出现可能还有其他原因,以后遇到了,再继续补充到这里。