Django中静态文件之各个配置详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django中静态文件之各个配置详解相关的知识,希望对你有一定的参考价值。

参考技术A

2. STATIC_ROOT :这个是配置静态文件存放目录,另外一个作用就是运行收集静态文件的命令(关于命令的部分后面会讲)时,最终静态文件收集存放的位置,注意, 这个配置只会在debug=false时生效(生产环境) (至于为什么之后会讲)。

4. STATICFILES_DIRS :在实际项目开发中,如果我们的静态文件存放在一个或多个目录时,可以定义一个列表,用于存储静态文件,django默认配置并没有这个配置,如果需要,请自己定义,当项目下存在一个或多个静态资源的目录时,非常适合这样定义。注意, 这个配置只在debug=true时生效(开发环境)

8. templates :定义html模板文件存放目录,如果你用的是pycharm的IDE的话,在创建项目时,可以根据配置自动创建一个templates目录,pycham会自动帮我们配置,如果没有配置,就需要手动创建,当然,你也可以选择自定义该目录

9. collectstatic :在项目部署时,我们还要进行静态文件的收集,如果手动收集静态文件的话,工程量无疑很大,而且部署后,debug肯定要改为 debug=false ,这时如果不进行静态文件的收集的话,django自带的部分,如admin后台就会出现CSS无法加载的问题,因此,项目部署前,这个操作是是必须的。
django的 django.contrib.staticfiles 提供了一个收集静态文件的命令: python manage.py collectstatic ,执行该命令后,会将静态文件收集到配置好的 STATIC_ROOT 中


Django之静态文件配置

jscssimg等都叫做静态文件,那么关于django中静态文件的配置,我们就需要在settings配置文件里面写上这写内容:

 

STATIC_URL = ‘/static/‘     #别名(可以任意):指向下边拼接的路径

STATICFILES_DIRS=[

    os.path.join(BASE_DIR, "static_files"),#文件夹位置可不固定,但拼接时注意路径

]

 

        别名也是一种安全机制,浏览器上通过调试台你能够看到的是别名的名字,这样别人就不能知道你静态文件夹的名字了,不然别人就能通过这个文件夹路径进行攻击。

        前端页面引入静态文件的写法,因为别名也可能会修改,所以使用路径的时候通过% load static %来找到别名,通过别名映射路径的方式来获取静态文件。 

 

静态文件配置:

  技术图片

 

static_file.html 

 1 % load static %
 2 <!DOCTYPE html>
 3 <html lang="en">
 4 <head>
 5     <meta charset="UTF-8">
 6 #    <link rel="stylesheet" href="../app01/static_files/css/01.css">#
 7     <link rel="stylesheet" href="% static ‘css/01.css‘ %">
 8     <title>静态文件页面</title>
 9 </head>
10 <body>
11 <div>
12     <div class="c1">123</div>
13 #    <img src="../app01/static_files/imgs/1.png" alt="">#
14     <img src="% static "imgs/1.png" %" alt="">
15 </div>
16 </body>
17 #<script src="../app01/static_files/js/01.js"></script>#
18 <script src="% static "js/01.js" %"></script>
19 </html> 

  

其它操作:

% static %

  % load static %

  <img src="% static "images/hi.jpg" %" alt="Hi!" />

引用JS文件时使用:

  % load static %

  <script src="% static "mytest.js" %"></script>

某个文件多处被用到可以存为一个变量

  % load static %

  % static "images/hi.jpg" as myphoto %

  <img src=" myphoto "></img>

% get_static_prefix %

  % load static %

  <img src="% get_static_prefix %images/hi.jpg" alt="Hi!" />

或者

  % load static %

  % get_static_prefix as STATIC_PREFIX %

 

  <img src=" STATIC_PREFIX images/hi.jpg" alt="Hi!" />

  <img src=" STATIC_PREFIX images/hi2.jpg" alt="Hello!" />

  

以上是关于Django中静态文件之各个配置详解的主要内容,如果未能解决你的问题,请参考以下文章

Nginx详解十:Nginx场景实践篇之Nginx静态资源场景配置

Apache的各种优化以及安全配置详解

详解 Tomcat 配置文件 server.xml

Django之静态文件配置

MyBatis Generator 配置文件详解 之 table 元素

Nginx各个配置块功能详解