部署环境的搭建请看此博客https://blog.csdn.net/anifans9350/article/details/80145535

查看nginx.conf 文件,

nginx文件(etc/nginx/nginx.conf)配置:

修改http里面的server:

  1. server {
  2. listen ;
  3. server_name localhost;
  4.  
  5. #charset koi8-r;
  6. #access_log /var/log/nginx/host.access.log main;
  7. access_log /var/log/nginx/myweb_access.log;
  8. error_log /var/log/nginx/myweb_error.log;
  9.  
  10. client_max_body_size 75M;
  11.  
  12. location / {
  13. include uwsgi_params;
  14. #这行指定uwsgi开放的数据交换接口
  15. uwsgi_pass 127.0.0.1:;
  16. #这里与配置uwsgi的ini文件中module内容一致
  17. uwsgi_param UWSGI_SCRIPT ibook.wsgi;
  18. #这里与配置uwsgi的ini文件中chdir内容一致
  19. uwsgi_param UWSGI_CHDIR /root/ibook;
  20. }
  21.  
  22. location ^~ /static/ {
  23. root /root/book/;
  24. #这行指定静态文件的搜索目录, localhost/static/test.css => /home/book/static/test.css
  25. #注意,这里location行中指定的地址也会在转换后的地址中
  26. }
  27. }

注意location的static配置,我的项目放在root目录,所以可能出现权限问题,也就是部署环境后,访问静态图片会出现403,解决就是在nginx.conf文件的开始处,把

  1. user nginx;

改成

  1. user root;

这样就不会出现403的问题,如果还是不能访问,尝试给项目文件加权限

  1. chmod 项目文件夹

uwsgi配置:

在项目根目录新建文件test_proj.ini,内容为

  1. # start_proj.ini file
  2. [uwsgi]
  3.  
  4. # Django-related settings
  5.  
  6. # uwsgi的对外socket接口,nginx将通过该接口与uwsgi做数据交换,因为与nginx同在一个服务器内,不需要在防火墙上对端口8090做访问许可
  7.  
  8. socket = 127.0.0.1:
  9.  
  10. # the base directory (project full path)
  11.  
  12. # 本项记录Django对象工程的完整路径
  13.  
  14. chdir = /root/book
  15.  
  16. # Django s wsgi file
  17.  
  18. # 本项指示uwsgi.py文件的位置,其位于Django工程目录下有个与工程名同名的子文件夹内 ( 设置方式为 文件夹名.wsgi )
  19.  
  20. module = book.wsgi
  21.  
  22. # process-related settings
  23. # master
  24. master = true
  25.  
  26. # maximum number of worker processes
  27. processes =
  28.  
  29. # ... with appropriate permissions - may be needed
  30. # chmod-socket=
  31. # clear environment on exit
  32. vacuum= true
  33. # pidfile for record run pid
  34. pidfile=pid.uwsgi
  35. # run process background and save log to daemonize
  36. daemonize = UWSGI.log

启动时切换到项目根目录下,启动命令

  1. uwsgi --ini test_proj.ini

之后启动nginx

  1. systemctl start nginx

settings.py 配置:

  1. DEBUG = False
  2.  
  3. # 添加域名
  4. ALLOWED_HOSTS = ['*']

静态文件配置相关:

  1. # 静态文件 cs/js
  2. STATIC_URL = '/static/'
  3. STATICFILES_DIRS = (
  4. os.path.join(BASE_DIR, 'book','static'), #book为项目名称
  5. )
  6. STATIC_ROOT = (
  7. os.path.join(BASE_DIR, 'static').replace('\\','/')
  8.  
  9. )
  10.  
  11. # 上传图片
  12. MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
  13. MEDIA_URL = '/media/'
  14.  
  15. STATICFILES_FINDERS = (
  16. "django.contrib.staticfiles.finders.FileSystemFinder",
  17. "django.contrib.staticfiles.finders.AppDirectoriesFinder"
  18. )

Django部署生产环境,静态文件不能访问404,以及图片不能访问403的更多相关文章

  1. Django_生产环境静态文件配置

    需求: 当Django项目运行在线上的时候,需要关闭debug模式,那么Django设置中,静态文件路径配置将会失效,如何解决这个问题? 问题原因: Django默认关闭debug模式,Django错 ...

  2. Ubuntu-18.04.2系统 Nginx+uWSGI+Django 部署生产环境

    首先准备环境: 1.使用虚拟机 VMware Workstation Pro (也可以不用),安装Ubuntu-18.04.2系统 开始搭建环境 (因为ubuntu18.4.2集成了python3.6 ...

  3. django2.0 + python3.6 在centos7 下部署生产环境的一些注意事项

    一:mysql 与环境选用的坑 目前, 在生产环境部署django有三种方式: 1. apache + mod_wsgi 2. nginx + uwsigi 3. nginx + supervisor ...

  4. 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!

    擦 ,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了! 问题在于我使用的谷歌浏览器,默认使用了缓存,导致每次访问同一个url时,都返回的是缓存里面的东西.通过谷歌 ...

  5. Centos6.3 下使用 Tomcat-6.0.43 非root用户 jsvc模式部署 生产环境 端口80 vsftp

    一.安装JDK环境 方法一. 官方下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260 ...

  6. Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境 端口转发方式

    一.安装JDK环境 方法一. 官方下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260 ...

  7. Django整理(三) - 配置文件&静态文件

    项目常用配置 在项目的 setting.py 配置文件中,进行项目相关配置的修改. 1. BASE_DIR 当前项目的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路 ...

  8. Django 2.0 学习(13):Django模板继承和静态文件

    Django模板继承和静态文件 模板继承(extend) Django模板引擎中最强大也是最复杂的部分就是模板继承了,模板继承可以让我们创建一个基本的"骨架"模板,它可以包含网页中 ...

  9. linux安装Django 以及 生产环境部署实现高并发

    1.首先安装python Python编译安装 主要介绍linux环境下安装 cd  /usr/local/src     //进入安装目录 wget  https://www.python.org/ ...

随机推荐

  1. openstack 部署笔记--glance

    控制节点 创建用户及服务 $ . admin-openrc $ openstack user create --domain default --password-prompt glance $ op ...

  2. [LeetCode] 687. Longest Univalue Path_Easy tag: DFS recursive

    Given a binary tree, find the length of the longest path where each node in the path has the same va ...

  3. Mantle 与Injection

    本来Injection可以本地打补丁实时修改代码,但是不知道Mantle的数据类为何不能打补丁,可能因为Mantle利用了很多运行时的技术吧.

  4. Tesseract-OCR 训练过程 V3.02

    软件: jTessBoxEditor Version 0.9 (30 April 2013) Tesseract-OCR win32 v3.02 with Leptonica   训练步骤:   1. ...

  5. leetcode & lintcode 题解

    刷题备忘录,for bug-free 招行面试题--求无序数组最长连续序列的长度,这里连续指的是值连续--间隔为1,并不是数值的位置连续 问题: 给出一个未排序的整数数组,找出最长的连续元素序列的长度 ...

  6. Here we take a closer look at the Jordans Unveil

    Here we take a closer look at the Jordans Unveil. This Mens release is both unique and striking. The ...

  7. Qt界面控件值获取异常处理

    情景简述: 正常情况,我们从控件获取的值是OK的,但有时候就是奇怪的不对头,那么我们可以给获取后的值加上一个不痛不痒的函数,再返回,结果就OK了.至于原因嘛,[呲牙][呲牙] 比如: //正常情况 d ...

  8. potplayer启动慢的各种奇葩原因

    此博文可能会持续更新,因为启动慢的原因各种奇葩啊 1.声卡(螃蟹卡)驱动导致的启动慢.解决方法:potplayer中,"选项"->"声音"->修改一 ...

  9. linux常用命令:chgrp 命令

    在 lunix系统里,文件或目录的权限的掌控以拥有者及所诉群组来管理.可以使用chgrp指令变更文件与目录所属群组,这种方式采用群组名称或群组识别 码都可以.chgrp命令就是change group ...

  10. iframe嵌套

    iframe基本内涵 通常我们使用iframe直接直接在页面嵌套iframe标签指定src就可以了. <iframe src="demo_iframe_sandbox.htm" ...