Django发布出现静态资源访问不到的问题!若是初学者请看完,拖坑妥妥的

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






发布了5 篇原创文章 · 获赞 6 · 访问量 977

猜你喜欢

转载自blog.csdn.net/TodChen_Blogger/article/details/105746362