问题描述
在第二节中配置好了uwsgi和nginx之后,项目网页可以查看了,但是当测试
ip:88/admin时发现没有css的修饰了;#下面中出现的星号部分换成自己的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中静态文件的配置
- 给ngnix中加入静态文件的配置
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 { #静态文件在这里
alias /home/ljh/project/Hello/static; #项目的静态文件路径
}
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,发现静态文件还是没有加载;
查了一些这种情况,说是需要保证setting.py中的DEBUG是False。设置了还是没有用
-
查看nginx的日志文件发现如下:
权限问题(但是我是用root运行的唉),然后我将/home/ljh/project/Hello/static
的整个文件夹都给了root(chown)。发现还是不行,到后面查看nginx的配置,发现里面有个user参数,这是代表运行nginx的用户和用户组,好吧。恍然大悟。
于是又把/home/username/project/Hello/static的用户和组给回了原来的用户,然后配置文件中修改了user参数。
user username; #username是你的项目的所有者用户名称
然后重新加载就ok了。