Django static静态配置文件
对于Django来说静态文件一般交由Web服务器处理,Django本身不处理静态文件。为了使Django开发环境能够处理静态文件,Django有和生产环境不同的静态文件配置方式。
Django 版本:1.10
开发(Dev)环境配置
一、STATIC_URL, STATICFILES_DIRS, STATIC_ROOT
1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/img等
2. 确保settings.py中的INSTALLED_APPS中包含django.contrib.staticfiles,以及Debug为True
3. 设置settings.py中的STATIC_URL的值为“/static/”,作用参考5
4. 在模版开头{% load static %}之后,在模版中使用{{ STATIC_URL }}作为静态文件路径前缀。比如css文件your_app/static/css/bootstrap.min.css,那么应用代码为<link href="{% static "css/bootstrap.min.css" %}" rel="stylesheet">
5. 可以测试单独通过url访问静态文件(http://127.0.0.1:8000/static/css/bootstrap.min.css)
6. STATICFILES_DIRS用来配置一些额外的静态文件的地址,如下配置。模版中访问的时候,参考4即可。
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
'/var/www/static/',
]
7. STATIC_ROOT, 设置绝对路径, 在collectstatic运行的时候会把静态文件拷贝到这个目录中,其更多的作用是在从开发环境到生产环节过程中移植静态文件。
二、MEDIA_ROOT和MEDIA_URL
MEDIA_ROOT:指用户上传的文件,比如在Model里面的FileFIeld,ImageField上传的文件。如果你定义MEDIA_ROOT='/Users/xxx/media/',那么File=models.FileField(upload_to="app01/pic"),上传的文件就会被保存到'/Users/xxx/media/app01/pic'
MEDIA_URL:URL的映射,前后要加上‘/’ 表示从根目录开始,比如“/site_media/”,加上这个属性之后,静态文件的链接前面会加上这个值。
1. 在settings文件中设置MEDIA_URL,比如MEDIA_URL='/media/'
2. 在settings文件中设置MEDIA_ROOT,可以是任意位置(不与STATIC_ROOT相同),用于保存上传的文件
3. urls文件中配置如下,
from django.conf import settings
from django.conf.urls.static import static urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
4. 在settings文件中,TEMPLATES中'context_processors'下面新增'django.template.context_processors.media'
配置好后可以使用浏览器访问上传的文件, http://ip:port/MEDIA_URL/upload_path/file. 比如MEDIA_URL设置的是'/media/',MEDIA_ROOT设置的是'/User/xxx/',在models中设置的文件上传到(upload_to=)'app01/pic',那么文件上传后实际存储地址为/User/xxx/app01/pic. 通过URL访问的话:http://ip:port/media/app01/pic/test.jpg. 在前端模版中访问这个上传的图片: <img src="{{ MEDIA_URL }}app01/pic/test.jpg"">
更多参考官方文档。
生产环节部署
在部署阶段最大的不同在于你必须让web服务器来处理静态文件,因此你必须在web服务器中配置,以便能让web服务器能访问静态文件。官方文档参考这里。后面会在自己试验过后补充自己的备注。
Django static静态配置文件的更多相关文章
- django 设置静态文件,static
django 设置静态文件,static 一.搜集静态文件 1.1 命令行查看 collectstatic guoguos-MacBook-Pro:mysite guoguo$ python mana ...
- python 全栈开发,Day108(客户管理之权限控制,客户管理之动态"一级"菜单,其他应用使用rbac组件,django static文件的引入方式)
一.客户管理之权限控制 昨天的作业,有很多不完善的地方 下载代码,基本实现权限验证 https://github.com/987334176/luffy_permission/archive/v1.2 ...
- Django之静态文件配置
在项目目录中打开settings.py,在最下面配置静态文件(css文件,js文件以及其他静态配置文件),比如说html使用到了jQuery框架,我们要在项目根目录下创建statics(可自定义),将 ...
- Django settings.py 配置文件详解
settings.py 配置文件 import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #引 ...
- django settings.py 配置文件
目录 settings.py 配置文件 settings.py 配置文件 import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.ab ...
- django 中静态文件项目加载问题
问题描述: django项目中创建了多个app后,每个app中都有对应的static静态文件.整个项目运行时这些静态文件的加载就是一个问题,因为整个项目我只参与了一部分,项目部署之类的并没有参与.我写 ...
- [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]
[Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...
- django处理静态文件
静态文件指的是js css 还有图片这些,配置方法如下 1. 在设置文件(settings.py)中,installed_apps中添加 django.contrib.staticfiles 然后设置 ...
- Django中静态文件引用优化
静态文件引用优化 在html文件中是用django的静态文件路径时,一般会这么写: <script type="text/javascript" src="/sta ...
随机推荐
- thinkphp 输入过滤
永远不要相信客户端提交的数据,所以对于输入数据的过滤势在必行,我们建议: 开启令牌验证避免数据的重复提交: 使用自动验证和自动完成机制进行初步过滤: 使用系统提供的I函数获取用户输入数据: 对不同的应 ...
- python 远程执行命令
1.简单版 # coding: utf-8 import paramiko import re from time import sleep def ssh(): ssh = paramiko.SSH ...
- 59 cuda 不同版本__half冲突问题 —— "__half" has no member "x"
0 引言 深度学习中常常用到half类型的半精度浮点数,但是cpu本身是不支持half的,因此需要进行转换. 1 half - float转换 参考了某博主的github,链接如下. https:// ...
- NX二次开发-UFUN关闭STL文件函数UF_STD_close_stl_file
NX9+VS2012 #include <uf.h> #include <uf_obj.h> #include <uf_modl.h> #include <u ...
- NX二次开发-UFUN发射线函数UF_MODL_trace_a_ray的用法
今天是国庆节,放假休息懒得动,没有出去玩,在家研究一下发射线函数UF_MODL_trace_a_ray.小弟以前在软件公司混的时候,当时我做的那个项目就用到了UF_MODL_trace_a_ray,当 ...
- Annotation详解
转自:http://www.doc88.com/p-995532241886.html 首先我们定义一个简单的注解 package com.qjy.annotation; import java.la ...
- Photon Server与Unity3D客户端的交互
Photon Server与Unity3D的交互分为3篇博文实现 (1)Photon Server的服务器端配置 (2)Photon Server的Unity3D客户端配置 (3)Photon Ser ...
- iOS开发之UIMenuController
1.简介 用于剪切.复制.粘贴.选择.选择ALL和DELETE命令的菜单界面. UITextField.UIWebView.UITextView自带有这种UIMenuController效果: 2.相 ...
- CentOS部署软件and so on……
CentOS各版本系统下载 CentOS下载地址:http://archive.kernel.org/centos-vault/ CentOS安装python3.7.2: 1.安装依赖包 yum in ...
- parallels desktop虚拟机与Mac共享网络设置方法
查看vnic0的ip centos7设置ip parallels desktop偏好设置 最后可以互ping 也可以ping外网