Django发布出现静态资源访问404
注意注意:本文是静态资源访问出现404错误,不是200显示不出图像。如图所示
这就是200,status下显示的,本人是404,因为问题解决没有图片,请大家见谅。
至于如何发布网上有很多教程可以自行查阅,但是容易出错的点,本人在这里指出。
1.发布后注意加载静态资源文件
相信大家经常会看到网上的有人发, 出现静态资源找不到在项目文件输入,在win输入python如果是linux输入python3
python manage.py collectstatic
这一条指令,但这条指令作用到底在哪?
看到STATIC_ROOT , 这就是输入那条指令后,在该文件夹下会加载所有的静态资源文件(包括admin的)如果大家出现admin没有静态资源加载,该方式照样合适,主要原因就是admin文件没有被加载django没有访问到。
输入上面的collectstatic指令后观察该文件下是否出现admin文件夹
ok,到这里大致绝大多数问题已经解决,如果还出现问题,请继续看2
2.若还访问不到,估计是nginx的路径设置错误 ,也就是在nginx的server 中 有location /static/ 里面的alias 路径放入你的static路径, 最后注意注意加/结尾,本人没注意查看到凌晨,再次警示与告知,最后的/路径, 不懂得可尝试 cd 某一个文件 加tab键,自动补全最后都是 /结尾。
好了看到这里就给大家分享福利哦,不用下载积分,直接给你们笔记!!!感谢你们的浏览
1. 关闭防火墙
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
2. 安装wget工具,用于网上下载文件
yum -y install wget
3. GCC编译器环境 , 安装python3 所需要的编译环境
yum -y install gcc
4. python3 使用的依赖组件
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite*-devel mysql-devel
5. wget指令在python官网下载python3.6压缩包
wget "https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz"
6. 在当前路径下输入解压指令
tar -zxvf Python-3.6.3.tgz
7. 将python3.6 编译到Centos 系统
cd Python-3.6.3
# 依次输入编译指令
sudo ./configure
make
make install
# 在交互环境输入python3测试
8. 部署uwsgi服务器在python3安装相应的模块
pip3 install mysqlclient
pip3 install django==2.0.0
pip3 install uwsgi
9. 安装完成后把数据库资料和静态文件资料修改
# 静态资源路径
STATIC_ROOT = 'static/'
10. 将项目文件转移到home文件夹下方
11.在home文件夹下进入项目文件
uwsgi --http :8080 --chdir /home/tem -w tem.wsgi
12.在项目目录下创建tem_uwsgi.ini配置文件
[uwsgi]
# Django-related settings
socket= :8080
# the base directory (full path)
chdir=/home/tem
# Django s wsgi file
module=tem.wsgi
# process-related settings
# master
master=true
# maximum number of worker processes
processes=4
# ...with appropriate permissions -may be needed
# chmod-socket = 664
# clear environment on exit
vacuum=true
13. 添加Nginx的安装源
rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.e17.ngx.noarch.rpm(可能报错)
rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
14.使用yum安装nginx
yum install nginx
15.输入启动指令
systemctl start nginx
16.在本机输入IP
可以看到Nginx启动
17.修改/etc/nginx/nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name 120.26.173.65;
root /usr/share/nginx/html;
charset UTF-8;
access_log /var/log/nginx/myweb_access.log
error_log /var/log/nginx/myweb_error.log;
client_max_body_size 75M;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
include uwsgi_params;
uwsgi_pass 120.26.173.65:8080;
uwsgi_read_timeout 2;
}
location /static/ {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /home/tem/static/;
}
18.停止Nginx进程或者重启系统
systemctl stop nginx.service
19.启动uwsgi
uwsgi --ini tem_uwsgi.ini