服務器使用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; }
- 當然樣式不出現可能還有其他原因,以后遇到了,再繼續補充到這里。
