服务器使用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;
}
- 当然样式不出现可能还有其他原因,以后遇到了,再继续补充到这里。