問題描述
在第二節(jié)中配置好了uwsgi和nginx之后,項目網頁可以查看了,但是當測試
ip:88/admin時發(fā)現(xiàn)沒有css的修飾了;#下面中出現(xiàn)的星號部分換成自己的IP地址就行
問題原因查找
- 查看是否是django項目的問題;
- 首先關閉uwsgi和nginx
uwsgi --stop /usr/local/uwsgi/uwsgi.pid
nginx -s stop
- 進入到項目目錄中,用django的形式運行項目
python manage.py runserver 0.0.0.0:8000
瀏覽器打開項目*.*.147.122:8000/admin
此時項目的css是正常的
- 查看是否為uwsgi的問題,還在項目目錄下
uwsgi --http :8000 --module Hello.wsgi
瀏覽器打開項目*.*.147.*:8000/admin
此時項目的css是正常的
- 從上面看,問題是出在nginx中。
nginx中靜態(tài)文件的配置
- 給ngnix中加入靜態(tài)文件的配置
server {
listen 88; #default_server;
#listen *.*.*.*:8000 #default_server;
server_name *.*.*.122;
#root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
include uwsgi_params;
uwsgi_pass *.*.*.*:8000; #必須和uwsgi中的設置一致,但是uwsgi中填的是內網ip,這里填外網ip
uwsgi_param UWSGI_SCRIPT Hello.wsgi; #入口文件,即wsgi.py相對于項目根目錄的位置,“.”相當于一層目錄
uwsgi_param UWSGI_CHDIR /home/ljh/project/Hello; #項目根目錄
index index.html index.htm;
#proxy_pass http://localhost:8000;
client_max_body_size 35m;
}
location /static { #靜態(tài)文件在這里
alias /home/ljh/project/Hello/static; #項目的靜態(tài)文件路徑
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
-
配置完重新加載nginx,重啟uwsgi
uwsgi --ini /etc/uwsgi.ini
nginx -s reload 再次打開瀏覽器,查看..*.122:8000/admin,發(fā)現(xiàn)靜態(tài)文件還是沒有加載;
查了一些這種情況,說是需要保證setting.py中的DEBUG是False。設置了還是沒有用
-
查看nginx的日志文件發(fā)現(xiàn)如下:
image.png 權限問題(但是我是用root運行的唉),然后我將/home/ljh/project/Hello/static
的整個文件夾都給了root(chown)。發(fā)現(xiàn)還是不行,到后面查看nginx的配置,發(fā)現(xiàn)里面有個user參數(shù),這是代表運行nginx的用戶和用戶組,好吧?;腥淮笪?。
于是又把/home/username/project/Hello/static的用戶和組給回了原來的用戶,然后配置文件中修改了user參數(shù)。
user username; #username是你的項目的所有者用戶名稱
然后重新加載就ok了。
