02-静态文件配置

01中项目的拓展:

在01中whw_dj的django的项目的前提下:
(1)在根目录下新建一个名为static的package,里面存放jQuery、css等“静态文件”
(2)在templates包中的timer.html文件中:script标签对于jQuery的引入要做变化
——加上static
——注意这里的static不是我们新建的目录名static
——为了避免混淆,将目录名命名为static就可以了:

<script src="/static/jquery-1.12.4.js"></script>

(3)在“与project同名的文件夹whw_dj下的settings.py文件中”:
加如下语句——:

STATICFILES_DIRS = [
            os.path.join(BASE_DIR,'static')
            ]

这里需要注意几点:

a:列表的名字必须命名为 STATICFILES_DIRS
b:这里的'static'才是我们新建的package的名字
c:程序自带的     
    STATIC_URL = '/static/'
    这个才是我们在步骤2中script标签引入的那个static——“别名”!!!   

修改“别名”的问题及解决

全局的settings文件中有一个STATIC_URL = '/static/',就是我们上面说的别名,一般情况下我们在引入的时候都是利用别名引入的:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
{#    利用别名引入静态文件#}
    <link rel="stylesheet" href="/static/whw.css">
</head>
但是这样写有个问题:如果我们修改别名的话~比如把STATIC_URL = '/static/改成STATIC_URL = '/my_static/~那么需要所有引入的地方都修改!这样显然不合适!
此时我们换一种引入的方式:
{#load 注意这里的static只是个关键字,用它来找静态文件的别名#}
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    {#利用load static引入静态文件#}
    <link rel="stylesheet" href="{% static 'whw.css' %}">
</head>
这样的话即使再次修改别名也不用在所有的引入静态文件的地方修改引入方式了!

小结

0、存放静态文件的文件夹的名字不要跟别名一样!!否则部署项目的时候会出现问题!!!
1、以后的css、js、图片等“静态文件”放在这个“static”包里
2、可以分不同的包——解耦
3、这个static文件夹要创建在项目的根目录里  
4、不管我们创建的这个存放静态文件的文件夹叫什么,引用的时候都要使用别名static这个文件夹的名字在上面的步骤(3)中os.path.join()方法用就行了!!
5、考虑到别名也会修改~因此推荐{% load static %}的方式引入静态文件!
posted on 2019-05-17 19:42  江湖乄夜雨  阅读(114)  评论(0编辑  收藏  举报