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自己的静态文件也相对独立开来 ,来容易导致冲突

最新文章

  1. Bzoj2957 楼房重建
  2. hdu 4739 2013杭州赛区网络赛 寻找平行坐标轴的四边形 **
  3. [书]WALL&#183;E、龙与地下铁、中国美丽的故事、故事新编、四十自述、书虫、人工智能、大话数据结构
  4. VS2013 RC 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral.........
  5. HTML5 Web SQL Database 与 Indexed Database 的 CRUD 操作
  6. 配置maven项目的开发时的默认jdk版本
  7. 爬虫(一)jupyter环境安装
  8. opencv关于Mat类中的Scalar()---颜色赋值
  9. PHP全路径无限分类原理
  10. 2. Python3 基础入门
  11. 样条之埃尔米特(Hermite)插值函数
  12. Go Revel - Results(响应)
  13. java所搜引擎slor学习笔记(一)
  14. JS禁止后退键(backspace)使浏览器后退
  15. JSP/Servlet中文乱码处理总结
  16. [WorldWind学习]18.High-Performance Timer in C#
  17. 远程使用tomcat8的首页的管理工具
  18. hdu4347The Closest M Points kdtree
  19. matplotlib绘制常用统计图
  20. POJ-2828 Buy Tickets---线段树+逆序

热门文章

  1. WebView返回时设置Title
  2. HttpURlconntiuon获取网络数据
  3. C#的类及应用
  4. Linux防火墙简介及iptables的基本使用
  5. Android ui 测试课堂笔记
  6. C语言结构体位域
  7. C段旁注工具CCC.exe
  8. StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 论文笔记
  9. 怎么样修改PHPStorm中文件修改后标签和文件名的颜色与背景色
  10. 采用sqlserver的缺省配置,在生产环境经常碰到系统响应慢(甚至hung的情况)