python---django中STATIC_ROOT和STATIC_URL以及STATICFILES_DIRS
先引入两篇相关文章,从中了解更为详细
Django的STATIC_ROOT和STATIC_URL以及STATICFILES_DIRS(先看)
1.STATIC_URL
#这个必须配置
STATIC_URL = '/statics/'
#这个可以不用配置
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'statics'),#BASE_DIR是项目根目录(绝对路径)
)
其中STATIC_URL是用资源路径前缀,用于访问资源时使用STATIC_URL即可,
STATIC_URL是对于每个项目APP的静态资源存放路径
#各个项目路径
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
'ts'
)
blog项目:
blog
statics(当前app静态资源路径)
jquery.js
...
其中statics目录就是STATIC_URL,每个项目APP的静态资源存放路径都应该为STATIC_URL
并且STATIC_URL必须存在,才能在模板文件中使用
<script src="statics/jquery.js"></script><!--statics是STATIC_URL前缀,与其保持一致-->
若是不存在STATIC_URL,会报错:
#django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the required STATIC_URL setting.
2.STATICFILES_DIRS
STATICFILES_DIRS不是必须存在
其中STATIC_URL代表各个APP中的静态资源存放路径,放在各个APP目录下
而STATICFILES_DIRS则是放在项目根目录下
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'statics'),
)
项目文件分布:
HelloWorld 项目
HelloWorld(全局文件存放,项目启动产生)
settings
urls
wsgi
blog (APP)
statics (静态资源文件)
...
ts (APP)
statics
...
statics (项目根目录下静态资源文件)
common_static(STATIC_ROOT使用)
...
一般:当STATICFILES_DIRS存在时,首先到STATICFILES_DIRS里面寻找静态文件,其次再到各个app的statics文件夹里面找
不存在STATICFILES_DIRS时,会直接根据STATIC_URL去APP目录下查找,但是记住,STATIC_URL是必须要添加的
3.STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, 'common_static')#名字自己随意,必须创建这个文件夹
在生产环境中,集中存放静态资源有利于管理使用静态资源
配置完STATIC_ROOT以后,需要执行
python manage.py collectstatic
命令,配合STATIC_ROOT,会自动将各个app(包括STATICFILES_DIRS中的)下的静态文件集中到STATIC_ROOT目录下。
Type 'yes' to continue, or 'no' to cancel: yes
记得不是y,是yes
其中会发现,对于python manage.py collectstatic这个命令,发现可以将STATICFILES_DIRS的资源添加(而且默认会将admin中的静态文件也加入),但是当STATIC_URL中指定文件夹为statics(或者其他)时,不会添加到STATIC_ROOT指定文件夹中,但是在APP目录下单纯添加static文件夹,而不修改STATIC_URL路径,依然是
STATIC_URL = '/statics/'
当执行python manage.py collectstatic
命令是,会将static文件夹中静态文件加入到STATIC_ROOT中
blog
statics (不会添加氮STATIC_ROOT中,但是STATIC_URL指向他)
static (会添加到STATIC_ROOT中但是STATIC_URL没有指向)
...
所以为了避免不必要的坑,最好选择直接使用
STATIC_URL = '/static/'
python---django中STATIC_ROOT和STATIC_URL以及STATICFILES_DIRS的更多相关文章
- Django的STATIC_ROOT和STATIC_URL以及STATICFILES_DIRS
首先,我们配置静态文件,要在setting.py里面加入如下几行代码: settings.py # the settings above# STATIC SETTINGSSTATIC_URL = '/ ...
- Python Django中QQ邮箱授权码问题
Python Django中QQ邮箱授权码问题 系统及软件版本如下: Ubuntu Kylin 16.04 Python 3.5.1 Django 1.9.7 PyCharm Community Ed ...
- RSA算法在Python Django中的简单应用
说明 RSA算法是当今使用最广泛,安全度最高的加密算法. • RSA算法的安全性理论基础 [引]根据百科介绍,对极大整数做因数分解的难度决定了RSA算法的可靠性.换言之,对一极大整数做因数分解愈困难, ...
- Python Django 中的STATIC_URL 设置和使用解析
使用Django静态设置时,遇到很多问题,经过艰苦的Baidu, stack overflow, Django原档阅读,终于把静态图片给搞出来了.特记录下来. 关键的概念:Django中,静态资源的存 ...
- python Django中的cookie和session
目录 Cookie 1.1获取Cookie 1.2设置Cookie Session 1.数据库Session 2.缓存Session 3.文件Session 4.缓存+数据库Session Cooki ...
- Django - staticfiles,STATIC_ROOT, STATIC_URL,STATICFILES_DIRS
staticfiles:这是一个静态资源管理的app,django.contrib.staticfiles.老的版本中,静态资源管理一直是一个问题,部分app发布的时候需要带上静态资源,在部署的时候必 ...
- python django中使用sqlite3数据库 存储二进制数据ByteArray
在python中使用sqlite3数据库存储二进制流数据ByteArray,在django使用sqlite3数据库时,有时候也要注意最好使用二进制流ByteArray插入字符串. 使用ByteArra ...
- python django中的orm外键级联删除
今天添加了一个路由表,路由表做外键,然后添加了几个组,路由表为组的外键,当我使用删除功能对路由表进行删除时,竞然将我的组也相当的删除了:尽管这是测试,但放到生产环境中还是会发生意外的:这个问题要解决: ...
- Python Django中一些少用却很实用的orm查询方法
一.使用Q对象进行限制条件之间 "或" 连接查询 from django.db.models import Q from django.contrib.auth.models im ...
随机推荐
- [CF1083F]The Fair Nut and Amusing Xor[差分+同余分类+根号分治+分块]
题意 给定两个长度为 \(n\) 的序列 \(\{a_i\}\) 与 \(\{b_i\}\),你需要求出它们的相似度.,我们定义这两个序列的相似度为将其中一个序列转化为另一个序列所需的最小操作次数.一 ...
- [BZOJ4857][JSOI2016]反质数序列[最大点独立集]
题意 在长度为 \(n\) 的序列 \(a\) 中选择尽量长的子序列,使得选出子序列中任意两个数的和不为质数. \(n\leq3000\ ,a_i\leq10^5\). 分析 直接按照奇偶性建立二分图 ...
- 记录:测试本机下使用 GPU 训练时不会导致内存溢出的最大参数数目
本机使用的 GPU 是 GeForce 840M,2G 显存,本机内存 8G. 试验时,使用 vgg 网络,调整 vgg 网络中的参数,使得使用对应的 batch_size 时不会提示内存溢出.使用的 ...
- net面试宝典
ASP.NET常见面试题及答案 1. 简述 private. protected. public. internal 修饰符的访问权限. 答 . private : 私有成员, 在类的内部才可以访问. ...
- Python与rrdtool的结合模块
rrdtool(round robin database)工具为环状数据库的存储格式,round robin是一种处理定量数据以及当前元素指针的技术.rrdtool主要用来跟踪对象的变化情况,生成这些 ...
- Final阶段用户使用报告
此作业要求参见:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2477] 组名:可以低头,但没必要 组长:付佳 组员:张俊余 李文涛 孙 ...
- C#Dictionary使用记录
一.区别 在工作中经常遇到C#数组.ArrayList.List.Dictionary存取数据,其区别和优劣势为: 初始化 数组: int[] buff = new int[6]; ArrayList ...
- 四则运算app总结
程序有难度和单项练习,但设计了每次只出5到题,如果做错的话会把错题加入到数据库中,然后通多错题巩固选项可以对错题进行训练. 代码: 普通选项代码: package com.example.szys; ...
- struts2中的方法的调用
转载:http://blog.csdn.net/hephec/article/details/41808585 在Struts2中方法调用概括起来主要有三种形式: 第一种方式:指定method属性 & ...
- WebView 5.0+闪烁以及白屏问题完美解决
Android webView 在5.0+上启动硬件加速,造成部分手机出现闪烁.白屏等现象 必须写下这篇博客,遇到的问题搞了很久,百度谷歌就是没有完整的答案,记录下来,方便博友们: 需求:一个简单的W ...