Django使用静态文件
除了由服务器生成的HTML文件外,网页应用一般需要提供其它必要的文件 —— 比如图片文件、JavaScript脚本和CSS样式表 —— 来为用户呈现出一个完整的网站。 在Django中,我们将这些文件称为“静态文件”。
对于小型项目,这不是个大问题,因为你可以将它们放在你的网页服务器可以访问到的地方。 然而,在大一点的项目中 —— 尤其是那些由多个应用组成的项目 —— 处理每个应用提供的多个静态文件集合开始变得很难。
这正是django.contrib.staticfiles的用途:它收集每个应用(和任何你指定的地方)的静态文件到一个单独的位置,这个位置在线上可以很容易维护。
1、新建目录
根目录下新建文件夹 static
目录结构如下:
static css style.css images 1.jpg js main.js
2、修改Django相关文件
#setting.py 增加以下配置 STATIC_URL = '/static/' HERE=os.path.dirname(os.path.dirname(__file__)) STATIC_ROOT =os.path.join( HERE , 'static').replace('\\','/') STATICFILES_DIRS = ( ("images", os.path.join(STATIC_ROOT,'images').replace('\\','/')), ("css", os.path.join(STATIC_ROOT,'css').replace('\\','/')), ("js", os.path.join(STATIC_ROOT,'js').replace('\\','/')), ) #urls.py 增加以下配置 urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT )
3、调用静态文件
{% load staticfiles %} #必须 <link rel="stylesheet" type="text/css" href="{% static 'css/main.css' %}" /> <script src="{% static 'js/main.js' %}" type="text/javascript"></script> <img src="{% static 'images/1.jpg' %}" width="100px">