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 ...
随机推荐
- C#编程语言与面向对象——类与对象
由于ASP.NET技术是全面向对象的,因此,要掌握这一技术,必须具备有扎实的面向对象理论基础 使用C#编程,所有的程序代码几乎都放在类中,不存在独立于类中之外的函数,因此,类是面向对象编程的基本单元 ...
- win10下 homestead 安装
1.安装VirtualBox 和 Vagrant 2.git或者composer安装 homestead git clone https://github.com/laravel/homestead. ...
- /etc/default/grub 部分配置选项设置
GRUB_HIDDEN_TIMEOUT=0 此配置将影响菜单显示.若设置此选项,将在此时间内隐藏菜单而显示引导画面. 菜单将会被隐藏,除非在此行开头加上一个 # 符号.(# GRUB_HIDDEN_T ...
- PHP MVC
学习一个框架之前,基本上我们都需要知道什么是mvc,即model-view-control,说白了就是数据控制以及页面的分离实现,mvc就 是这样应运而生的,mvc分为了三个层次,而且三个层次各司其职 ...
- Java JDBC使用方法
public class JDBC{public static void main(String[] args){//查询数据selectData();}//查询数据的方法private static ...
- Linux上搭建Elasticsearch服务器并同步数据库
1.准备工作 下载Elasticsearch版本号2.3.4 https://www.elastic.co/downloads/past-releases/elasticsearch- ...
- Invert Binary Tree
Invert a binary tree: 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 简单递归实现,调换左右子树,子树的所有子树结构 ...
- C++const限定符
在C语言中我们使用#define宏定义的方式来处理符号常量.而在C++中有一种更好的处理符号常量的方法,那就是使用const关键字来修改变量声明和初始化.这种处理常量方式的好处不言而喻:如果程序在多处 ...
- C语言字符串处理函数
函数名: strcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include < ...
- Zend Studio 中安装emmet插件的方法
本人的Zend Studio版本是Zend Studio 10.0.0. 1. 打开Zend Studio,点击 Help --> Install New Software,如下图: 2. 在 ...
此时运行:python manage.py findstatic css/index.css