Django 静态文件配置(static files)
Django version: 1.9
Python versrion: 3.5.2
因为据说除了Firefox之外的浏览器都会乱码, 所以放上截图

这几天Django配置静态文件(本例是要加载index.css), 总是不对,最后终于试对了,这里记录下,方便以后查阅
最后实在没办法把Django1.9的官方文档下载下来(网页版),仔细的阅读了下相关的章节。
首先看下项目的结构图(pycharm2016 professional):

1.首先在INSTALLED_APPS中要有'django.contrib.staticfiles'
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'news',
]
2.在settings.py中加入:
STATIC_URL = '/static/' STATICFILES_DIRS = [
os.path.join(BASE_DIR,"news/static/"),
]
3.加载静态文件时:
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'news/css/index.css' %}"/>
这里的路径是根据上面的文件结构来写的。
事实上在Django官方文档例子(投票系统Writing your first Django app, part 6中有讲到这些内容) 另外,有时出错误了可以这样修改:
将上面的 href="{% static 'news/css/index.css' %}改成:href="{% static 'css/index.css' %}
运行命令:python manage.py runserver 可能会有正的结果:
此时运行:python manage.py findstatic css/index.css
箭头指的地方的news是指news这个文件夹,这里要说的是第一条命令:python manage.py findstatic css/index.css找不到css
文件,那么肯定是这里路径的问题,这样修改路径后,可以找到index.css文件,那就可以到html中修改相应的路径了。 2017.11.02更新:
最近在写一个项目时出现了一个bug,开始一直没找到原因,最后发现是因为app与项目根目录下的静态文件同名,
导致冲突。这里更新下具体如何避免冲突的问题。 通常情况下,我们会在项目建立时在项目根目录建立一个static目录(上图中并没有,上图指最上面的目录树截图,下同),
创建时默认有一个templates目录,当项目越来越大时,我们不可能将所有静态文件都放在这个目录里,而是各app独立开来。 那么具体要怎么独立呢 项目根目录有
static目录---> 放公共的静态文件,如jquery, bootstrap等
templates目录--->放整个项目初始的网页等,如首页 app中,以上面的news为例:
先建立static目录:
static中建立app名字(上图中的news)的次级目录,这是关键
news中再分别建立css,js,img等次级目录
templates与static一样,也是先建立以当前app名字命名的次级目录
做完这些,我们需要将app静态文件路径加入到setting中:
os.path.join(BASE_DIR, "news/static/"),
注意,是在原有的要目录的静态文件的基础上添加。
同样的道理, 在网页或者视图函数中的路径也就加上对应的app名,例如在网页的的模板文件中(标签)
在没有相互独立时是这样的:
{% extends 'index.html' %}
在设计相互独立后就该是这样的:
{% extends 'news/index.html' %}
html中代码:

经过django渲染到浏览器后:

注意这里的users是与上图中的news一样是一个app,(实在找不到原来的代码了)
对于渲染后的结果我个人倾向于认为第一个 /static/css/bootstrap.min.css中的
static指代根目录中的static
而 /static/users/css/login.css中的static指代users/static/
因为这里对应你setting中的设置。
经过上面这一系列的设置,各app可以引用公共的静态文件,同时各app自己的静态文件也相对独立开来 ,来容易导致冲突
Django 静态文件配置(static files)的更多相关文章
- Django静态文件配置-request方法-ORM简介-字段的增删改查
app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 ...
- 55 Django静态文件配置
一.Django静态文件配置 1.项目文件夹,新建一个文件夹statics 文件夹 2.在配置文件settings.py中,配置: 文件中有第句: STATIC_URL = '/static/'#静态 ...
- Django 静态文件配置 (Nginx)
初学Django,在访问静态文件时候遇到很多误区,一直配置不成功,在此记录一下. Django静态文件访问分为两种:一种是Debug模式下,测试开发网站时对静态文件的访问,一种是实际生产环境中对静态文 ...
- django静态文件配置
开发环境配置 需要下面几个步骤 1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/img等 2. 确保settings.py中的INSTA ...
- Django——静态文件配置
本文目的 最近用django开发项目,发现django的静态文件(js,css和img等)配置比较麻烦,开发环境和生产环境的配置还不一样,这里记录一下,作为备忘.我当前使用的版本是django v1. ...
- Django静态文件配置 request对象 Django操作MySQL
Django中的文件介绍 render.HttpResponse和redirect 当我们想起手写一个项目,创建好应用并且注册之后,在urls.py文件先导入app文件夹下migrations下的vi ...
- django 静态文件配置
配置静态文件 在settings.py中尾部添加一下内容 STATICFILES_DIRS = [ #路径 BASE_DIR:项目文件根目录 os.path.join(BASE_DIR,'static ...
- django静态文件配置和使用
一.首先需要了解的知识点是: 1.出于对效率和安全的考虑,django管理静态文件的功能仅限于在开发阶段的debug模式下使用,且需要在配置文件的INSTALLED_APPS中加入django.con ...
- 使用nginx部署Django静态文件配置
首先,我们配置静态文件,要在setting.py里面加入如下几行代码: # settings.py # the settings above # STATIC SETTINGS STATIC_URL ...
随机推荐
- [读书笔记]java中的volatile关键词
以下内容大多来自周志明的<深入理解Java虚拟机>. 当一个变量被volatile修饰后,它将具备两种特性: 1. 保证此变量对所有线程的可见性,这里的“可见性”是指当一条线程修改了这个变 ...
- ghj
如果对同一个元素的定义有多种,以最接近(最小一级)的定义为最优先,例如有这么一段代码 Update: Lorem ipsum dolor set 在CSS文件中,你已经定义了元素p,又定义了一个cla ...
- <a>标签的用法。
1.创建电子邮件链接: <html> <head> <title>发给朱永成</title> </head> <body> &l ...
- Python实例4
4.输入某年某月某日,判断这一天是这一年的第几天? 正解: 源码:
- angular2 笔记
动态添加一个component: import { ViewContarinerRef, Component, ComponentFactoryResolver, ViewChild } from ' ...
- html页面元素事件丢失
前段时间做网站包括最近用mvc做oa都发现这个奇怪现象,就是页面加载完毕后页面元素事件(比如按钮点击.复选框change)一切正常,但是当执行查询或者其他操作后页面事件丢失.具体原因暂没有时间分析,现 ...
- 拓展Yii Framework(易框架)
1.拓展yii 此文针对Yii1.1.15而写,请注意甄别你的Yii Framework 版本. 拓展yii是开发期间常见的代码处理方式.例如,你写一个新的controller(业务控制器),你通过继 ...
- oracle数据迁移、备份等
exp db 或者数据泵. 或者ETL工具
- ODOO的命令行调用以及config默认值
通过odoo-bin 可以启动odoo server ,启动的过程中需要提供一些args,包括数据库设置,ip设置等 如果不想每次输入这些参数,可以直接修改odoo/tools/config.py中的 ...
- Python面向对象详解
Python面向对象的"怜人之处" Python的待客之道--谁能进来 Python的封装--只给你想要的 Python的继承--到处认干爹 Python的多态--说是就是
此时运行:python manage.py findstatic css/index.css