Django部署生产环境,静态文件不能访问404,以及图片不能访问403
部署环境的搭建请看此博客https://blog.csdn.net/anifans9350/article/details/80145535
查看nginx.conf 文件,
nginx文件(etc/nginx/nginx.conf)配置:
修改http里面的server:
server {
listen ;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log;
client_max_body_size 75M;
location / {
include uwsgi_params;
#这行指定uwsgi开放的数据交换接口
uwsgi_pass 127.0.0.1:;
#这里与配置uwsgi的ini文件中module内容一致
uwsgi_param UWSGI_SCRIPT ibook.wsgi;
#这里与配置uwsgi的ini文件中chdir内容一致
uwsgi_param UWSGI_CHDIR /root/ibook;
}
location ^~ /static/ {
root /root/book/;
#这行指定静态文件的搜索目录, localhost/static/test.css => /home/book/static/test.css
#注意,这里location行中指定的地址也会在转换后的地址中
}
}
注意location的static配置,我的项目放在root目录,所以可能出现权限问题,也就是部署环境后,访问静态图片会出现403,解决就是在nginx.conf文件的开始处,把
user nginx;
改成
user root;
这样就不会出现403的问题,如果还是不能访问,尝试给项目文件加权限
chmod 项目文件夹
uwsgi配置:
在项目根目录新建文件test_proj.ini,内容为
# start_proj.ini file
[uwsgi] # Django-related settings # uwsgi的对外socket接口,nginx将通过该接口与uwsgi做数据交换,因为与nginx同在一个服务器内,不需要在防火墙上对端口8090做访问许可 socket = 127.0.0.1: # the base directory (project full path) # 本项记录Django对象工程的完整路径 chdir = /root/book # Django s wsgi file # 本项指示uwsgi.py文件的位置,其位于Django工程目录下有个与工程名同名的子文件夹内 ( 设置方式为 文件夹名.wsgi ) module = book.wsgi # process-related settings
# master
master = true # maximum number of worker processes
processes = # ... with appropriate permissions - may be needed
# chmod-socket=
# clear environment on exit
vacuum= true
# pidfile for record run pid
pidfile=pid.uwsgi
# run process background and save log to daemonize
daemonize = UWSGI.log
启动时切换到项目根目录下,启动命令
uwsgi --ini test_proj.ini
之后启动nginx
systemctl start nginx
settings.py 配置:
DEBUG = False # 添加域名
ALLOWED_HOSTS = ['*']
静态文件配置相关:
# 静态文件 cs/js
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'book','static'), #book为项目名称
)
STATIC_ROOT = (
os.path.join(BASE_DIR, 'static').replace('\\','/') ) # 上传图片
MEDIA_ROOT = os.path.join(BASE_DIR, 'media').replace('\\', '/')
MEDIA_URL = '/media/' STATICFILES_FINDERS = (
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder"
)
Django部署生产环境,静态文件不能访问404,以及图片不能访问403的更多相关文章
- Django_生产环境静态文件配置
需求: 当Django项目运行在线上的时候,需要关闭debug模式,那么Django设置中,静态文件路径配置将会失效,如何解决这个问题? 问题原因: Django默认关闭debug模式,Django错 ...
- Ubuntu-18.04.2系统 Nginx+uWSGI+Django 部署生产环境
首先准备环境: 1.使用虚拟机 VMware Workstation Pro (也可以不用),安装Ubuntu-18.04.2系统 开始搭建环境 (因为ubuntu18.4.2集成了python3.6 ...
- django2.0 + python3.6 在centos7 下部署生产环境的一些注意事项
一:mysql 与环境选用的坑 目前, 在生产环境部署django有三种方式: 1. apache + mod_wsgi 2. nginx + uwsigi 3. nginx + supervisor ...
- 擦他丫的,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了!
擦 ,今天在Django项目中引用静态文件jQuery.js 就是引入报错,终于找到原因了! 问题在于我使用的谷歌浏览器,默认使用了缓存,导致每次访问同一个url时,都返回的是缓存里面的东西.通过谷歌 ...
- Centos6.3 下使用 Tomcat-6.0.43 非root用户 jsvc模式部署 生产环境 端口80 vsftp
一.安装JDK环境 方法一. 官方下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260 ...
- Centos6.3 下使用 Tomcat-6.0.43 非root用户 部署 生产环境 端口转发方式
一.安装JDK环境 方法一. 官方下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260 ...
- Django整理(三) - 配置文件&静态文件
项目常用配置 在项目的 setting.py 配置文件中,进行项目相关配置的修改. 1. BASE_DIR 当前项目的根目录,Django会依此来定位工程内的相关文件,我们也可以使用该参数来构造文件路 ...
- Django 2.0 学习(13):Django模板继承和静态文件
Django模板继承和静态文件 模板继承(extend) Django模板引擎中最强大也是最复杂的部分就是模板继承了,模板继承可以让我们创建一个基本的"骨架"模板,它可以包含网页中 ...
- linux安装Django 以及 生产环境部署实现高并发
1.首先安装python Python编译安装 主要介绍linux环境下安装 cd /usr/local/src //进入安装目录 wget https://www.python.org/ ...
随机推荐
- git 生成patch 和打入patch
转载:https://blog.csdn.net/liuhaomatou/article/details/54410361 平时我们在使用git 管理项目的时候,会遇到这样一种情况,那就是客户使用gi ...
- Centos安装ELK5.3.2
一.注意情况 1.elk的版本要一致. 2.ElasticSearch是基于lucence开发的,也就是运行需要java支持.所以要先安装JAVA环境.由于es5.x依赖于JDK1.8,所以需要安装J ...
- MVC前后台获取Action、Controller、ID名方法 以及 路由规则
前后台获取Action.Controller.ID名方法 前台页面:ViewContext.RouteData.Values["Action"].ToString();//获取Ac ...
- CentOS6.5安装Redis数据库
1.以安装redis2.8.19为例 下载安装包:http://redis.io tar zxvf redis-2.8.19.tar.gz #解压 cd redis-2.8.19 #进入解压后的文件夹 ...
- unittest数据驱动
所谓的数据驱动就是将数据单独存放,在写方法将数据读取,然后将读取的数据放在testcase里面. 当然如果这种testcase都是一样的,只有需要的数据不一样,也可以将testcase写成一个方法,把 ...
- django的分页器
Django中分页器的使用 django分页器模块 #分页器 from django.core.paginator import Paginator,EmptyPage,PageNotAnIntege ...
- matlab 以excel格式将字符串数组写入TXT文件
[m, n] = size(FFoutpu);fp = fopen('FFoutpu.txt','wt');fprintf(fp, 'name CODE ROTC EBIT_EV SHIZHI ROT ...
- class A where T:new()是什么意思
这是C#泛型类声明的语法 class A<T> 表示 A类接受某一种类型,泛型类型为T,需要运行时传入where表明了对类型变量T的约束关系. where T:new()指明了创建T的 ...
- C# 查看所有的隐藏文件
方法1 通过 位与 static void Main(string[] Args) { //假设扫描C:\Test中—— string[] hiddenfiles = Directory ...
- transition和animation区别
Transform:对元素进行变形: Transition:对元素某个属性或多个属性的变化,进行控制(时间等),类似flash的补间动画.但只有两个关键贞.开始,结束. Animation:对元素某个 ...