您的位置:首页 > Web前端 > JavaScript

django static 静态文件(css,js,image)处理机制

2014-11-16 22:51 513 查看
Django1.6 静态文件处理官方文档地址:https://docs.djangoproject.com/en/1.6/howto/static-files/

通过官方文档了解到Django并不会为解析静态文件作出很多功能设计,它认为把静态文件解析交给WEB服务器是最好的方法。但是为了开发过程中方便,django还是在自身的开发服务器中进行了相关功能的设定。

下面我简单介绍下在开发过程中Django解析静态文件所要设置的相关参数:

1.在我们的配置文件settings.py的INSTALLED_APPS这项值中加入django.contrib.staticfiles(一般项目创建会默认加入),这是Django帮我们处理静态文件的官方app

2.在我们的配置文件settings.py中定义 STATIC_URL = '/static/' (一般项目创建会默认加入) 此处的 STATIC_URL配置变量的值'/static/'就是我们HTML模板页面要引入CSS,JS等时需要指定的值,举个例子:引入jquery <script src="/static/js/jquery.js"></script> 路径中的/static/就是通过STATIC_URL指定,你如果想改成<script src="/my_static/js/jquery.js"></script>,那么只要把STATIC_URL=
'/my_static/'即可

3.在我们的配置文件settings.py中定义

STATICFILES_DIRS = (

    os.path.join(BASE_DIR, "static"),

)

STATICFILES_DIRS代表解析静态文件时从哪些目录文档中去找到这些静态文件,django默认的查找机制是先从STATICFILES_DIRS包含的目录下去寻找,如果没有找到则会到每个APP的static文件中或者STATIC_ROOT中去找.(最新找到的目录就会引用该目录下的静态文件,而不再继续找下去,所要尽量不要命名相同名字和路径的静态文件)

4 在我们的配置文件settings.py中可能还有STATIC_ROOT这个静态文件处理的项,他的作用如下:

当工程部署之后,处理静态文件较好的方法是交给Web容器来做,比如Apache,所以我们要将所有的静态文件放在一起,然后交给Apache托管,Django提供了一个命令collectstatic用来把所有的静态文件收集到STATIC_ROOT当中。(python manage.py collectstatic)

注意:

以上Django静态解析的功能只有在调试阶段才会起效,也就是DEBUG = True时有效,当DEBUG = False时就会关闭自身的静态解析功能从而交给WEB服务器去处理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django css js