zoukankan      html  css  js  c++  java
  • Django App(五) load static files

            经过前面4篇的努力,已经基本完成了,polls站点的功能,但是所有界面都没有涉及样式,和JavaScript的导入.到目前为止了解到的Django是通过解析Url来完成对客户端的响应的,那么组成站点所必须的css,script,image这些不需要服务器编译的静态资源是如何加载的

           1.新建静态资源文件夹及文件

              类似app模板,新建路径及文件polls/static/polls/site.css,App目录结构如下:

              

              编辑site.css如下: 

    body
    {
         background:red;
         color:white;
    }

            2.模板引入css样式

               在polls/templates/polls/index.html引入css,代码如下:

    {% load static %}
    
    <link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" />

               

               查看html在浏览器的源码,可以知道 load static 引入的是相对路径/static/,这个配置是在项目包名目录下settins.py里面:

               

               我们把静态资源放在App下就是因为这种引入方式,决定了静态资源的实际路径,明白了这个之后,我们把静态资源移动到项目根目录下,使用最原始html的方式引入: 

    <link rel="stylesheet" type="text/css" href="/static/polls/site.css"/>

              好了刷新下界面还是生效的,注意:本例中生成浏览器中的文件地址是:

                    http://localhost:8000/static/polls/site.css 

              而不是我们理解的因为在polls App下,

                    http://localhost:8000/polls/static/polls/site.css

               这个是因为Django查找static files的方法是在不同的应用程序中去匹配,如果有多个应用程序有重名的文件,Django是分不清楚的,它干脆返回第一个匹配到的(这个跟View中有重名函数的情况刚好相反,函数重名是返回最后一个匹配到的,比如下面的代码),所以我们在建css文件的时候,特意在static下面建了polls的二级文件夹加以区分!

    def vote(request, question_id):
        return HttpResponse("The First!")
    def vote(request,question_id):
        return HttpResponse("The Second!")

               

           

               

                由于是初学者,还有个问题是:站点经常把静态的资源放在站点根目录下,所有App共享,这个问题以后再探讨吧???

              

  • 相关阅读:
    [Swift-2019力扣杯春季初赛]2. 校园自行车分配
    php 遇到报错 Call to a member function fetch_object()
    Proactive Patching Overview
    PHP 官方说明
    SecureCRT 迁移到新环境,导出配置文件目录 转
    ORA-00020: maximum number of processes (300) exceeded
    转 SQL*PLUS中的替换变量(& &&)
    转 DOS(CMD)下批处理换行问题/命令行参数换行 arg ms-dos
    php 报错如下:Notice: Trying to get property of non-object
    mysqli 进一步分析
  • 原文地址:https://www.cnblogs.com/andayhou/p/8350564.html
Copyright © 2011-2022 走看看