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"">

转载来自 http://www.cnblogs.com/cedrelaliu/p/6122726.html

django静态文件的配置的更多相关文章

  1. django 静态文件的配置

    静态文件简介 一.准备文件 Jquery3.3.1文件,文件目录创建 二.创建过程如图 STATIC_URL = '/static/' #静态文件的别名 STATICFILES_DIRS=[ os.p ...

  2. django静态文件路径配置

    在settings.py中加入 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static') ] 即可在html中引用该目录下的静态文件 <!DOCT ...

  3. 55 Django静态文件配置

    一.Django静态文件配置 1.项目文件夹,新建一个文件夹statics 文件夹 2.在配置文件settings.py中,配置: 文件中有第句: STATIC_URL = '/static/'#静态 ...

  4. Django 静态文件配置 (Nginx)

    初学Django,在访问静态文件时候遇到很多误区,一直配置不成功,在此记录一下. Django静态文件访问分为两种:一种是Debug模式下,测试开发网站时对静态文件的访问,一种是实际生产环境中对静态文 ...

  5. Django静态文件配置-request方法-ORM简介-字段的增删改查

    app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 ...

  6. Django之CSS,JS静态文件的配置

    一. 专门创建一个目录放静态文件,即CSS,JS等. 1)先把jquery.min拿过来. 2)新建一个CSS文件放入样式 3)在login.html中引入.css文件 在login.html中引入. ...

  7. django 静态文件

    django 1.8版本以上 django 静态文件配置. 小作之前, 一直觉得django的静态文件配置非常的麻烦. 1. 要设置url(r'^static/(?P<path>.*)&a ...

  8. django静态文件处理

    django静态文件处理   从开始接接触python这门语言已有四年了,中间陆续的学习,又不断的忘记,所以基本上是没有系统的知识体系.但是挺喜欢这门简洁,强大的动态语言.最近自己私人有个项目要做,虽 ...

  9. django静态文件

    django静态文件(js脚本.CSS.图片等) 默认统一放在每一个app的static文件夹下, 通过收集静态文件命令,自动将每一个app下static文件夹下的文件复制到根目录的static文件夹 ...

随机推荐

  1. 20140725 快速排序时间复杂度 sTL入门

    1.快速排序的时间复杂度(平均时间复杂度为) 数组本身就有序时,效果很差为O(n^2) 2.STl入门 (1) C++内联函数(inline)和C中宏(#define)区别 内联函数有类型检查,宏定义 ...

  2. 【转】elasticsearch中字段类型默认显示{ "foo": { "type": "text", "fields": { "keyword": {"type": "keyword", "ignore_above": 256} }

    官方原文链接:https://www.elastic.co/cn/blog/strings-are-dead-long-live-strings 转载原文连接:https://segmentfault ...

  3. 日文NLP分词系统

    mecab(http://mecab.sourceforge.net/)是奈良先端科技大学开发的日文分词系统,基于CRF的分词原理,有c++实现,提供python.perl.ruby等接口 日文NLP ...

  4. ElementUI的使用

    一.安装 1.安装 在项目目录下执行 npm i element-ui -S 2.引入 在 main.js 中写入以下内容: import ElementUI from 'element-ui'; i ...

  5. 多台服务器-SSH免密登录设置

    在4台服务器-SSH免密登录设置,如以下4台服务器 master1 node001 node002 node003 我想在master1对4台服务器进行拉取或者分发任务或者是集群服务器的批量操作,但是 ...

  6. Centos6.5升级安装openssh7.7p1

    Centos6.5升级安装openssh7.7p1  关于OpenSSH漏洞   2016年1月14日OpenSSH发布官方公告称, OpenSSH Client 5.4~7.1 版本中未公开说明的功 ...

  7. vue组件添加鼠标滚动事件

    在一个组件标签上加鼠标滚动事件,应该写成    @mousewheel.native

  8. leetcood学习笔记-101-对称二叉树

    题目描述: 方法一:递归: class Solution: def isSymmetric(self, root: TreeNode) -> bool: if not root: return ...

  9. AnalyticDB for PostgreSQL 6.0 新特性介绍

    阿里云 AnalyticDB for PostgreSQL 为采用MPP架构的分布式集群数据库,完备支持SQL 2003,部分兼容Oracle语法,支持PL/SQL存储过程,触发器,支持标准数据库事务 ...

  10. php数组长度怎么获取

    我们可以将元素添加到数组或从数组中删除元素,那么如果我们想要知道数组中存在的元素的总长度或总数,我们就可以使用count() 或sizeof函数. 下面我们就通过简单的示例,给大家介绍php获取数组长 ...