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 ...
随机推荐
- SqlServer 触发器
--创建insert类型的触发器create trigger tgr_product_insert --创建触发器 on product --所针对的表 for insert --触发 ...
- 【转】oracle in和exists、not in和not exists原理和性能探究
转自http://www.2cto.com/database/201310/251176.html 对于in和exists.not in和not exists还是有很多的人有疑惑,更有甚者禁用not ...
- Flex 关闭浏览器
在Actionscript 2及以前,要打开任何网址,只需调用全局函数getURL()即可.在Actionscript 3中,已经取消了getURL()这个全局函数,取而代之的是flash.net包中 ...
- SQLSERVER系统视图,系统表,sys.sql_modules视图
SQLServer中提供了相当丰富的系统视图,能够从宏观到微观,从静态到动态反应数据库对象的存储结果.系统性能.系统等待事件等等.同时 也保留了与早期版本兼容性的视图,主要差别在于SQLServer2 ...
- window安装jekyll
安装Ruby Ruby 切记添加环境变量: 安装 RubyGems RubyGems 解压后进入目录输入: ruby setup.rb 安装Jekyll gem install jekyll 安装je ...
- shiro 自动登录
1.出现的错误:did not match the expected credentials---密码不匹配,后来自己写密码验证,其实作用不大: 配置 <!-- Shiro权限过滤过滤器定义 - ...
- 如何判断exe或dll的目标平台及是否是.NET?
1. COFF文件头中偏移0处的Machine指示目标机器类型(IMAGE_FILE_MACHINE_AMD64等),偏移18处的Characteristics位指示文件属性(IMAGE_FILE_3 ...
- SQL Server中的锁 详解 nolock,rowlock,tablock,xlock,paglock
摘自: http://www.myexception.cn/sql-server/385562.html 高手进 锁 nolock,rowlock,tablock,xlock,paglock 锁 no ...
- 测试dockerfile
测试dockerfile是否ok(比如我的Dockerfile在deploy目录下) docker build -t my_image -f deploy/Dockerfile . docker im ...
- hadoop2升级的那点事情(详解)
前言 前阵子,公司的hadoop从hadoop1.02升级到hadoop2.4.1,记录下升级的步骤和遇到的问题,和大家分享,希望别人可以少走一些弯路 技术选型 当前使用版本: apache ...
此时运行:python manage.py findstatic css/index.css