经过前面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共享,这个问题以后再探讨吧???

Django App(五) load static files的更多相关文章

  1. Django 静态文件配置(static files)

    Django version: 1.9 Python versrion: 3.5.2 这几天Django配置静态文件(本例是要加载index.css), 总是不对,最后终于试对了,这里记录下,方便以后 ...

  2. frist Django app — 五、Test

    Test——很重要但是没有被重视起来的一个环节,至少是我自己,其实自己之前在做java web的时候就去尝试过怎么做REST接口的测试,一直没有找到一种合适方式,而且因为时间紧没有进一步深究,但是造成 ...

  3. Express细节探究(1)——app.use(express.static)

    express相信是很多人用nodejs搭建服务器的首选框架,相关教程有很多,也教会了大家来如何使用.如果你想更深的了解他的细节,不妨和我一起来研究一下. 先来看一个每个人都用到的方法app.use( ...

  4. [转]ASP.NET Core: Static Files cache control using HTTP Headers

    本文转自:https://www.ryadel.com/en/asp-net-core-static-files-cache-control-using-http-headers/ Every sea ...

  5. Settings Django Static Files

    静态文件是通过django.contrib.staticfiles来管理的. 配置Django静态文件,Djang官网静态文件配置介绍.简言之,通过以下三个步骤来配置和加载静态文件: 设置静态文件别名 ...

  6. Django基础,Day7 - 添加静态文件 static files

    添加css样式文件 1.首先在app目录下创建static文件夹,如polls/static.django会自动找到放在这里的静态文件. AppDirectoriesFinder which look ...

  7. 【Azure 应用服务】App Service For Windows 环境中部署Python站点后,如何继续访问静态资源文件呢(Serving Static Files)?

    问题描述 当创建一个App Service 后,运行时环境和版本选择Windows 和 Python 3.6. 登录Kudu 站点查看,默认的文件有 web.config, hostingstart- ...

  8. django之模板系统 --》内容(filter过滤器、tags标签【for、if、with】、母板以及继承、crf_token、注释、组件、静态文件【load static】、get_static_prefix、自定义标签和tag)

    常用: Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作. 变量 {{ 变量名 }} 变量名由字母数字和下 ...

  9. Django 2.0.1 官方文档翻译: 编写你的第一个 Django app,第五部分(Page 10)

    编写你的第一个 Django app,第五部分(Page 10)转载请注明链接地址 我们继续建设我们的 Web-poll 应用,本节我们会为它创建一些自动测试. 介绍自动测试 什么是自动测试 测试是简 ...

随机推荐

  1. ant_<target>标签含义与使用

    <target>标记目标 目标是一个或多个任务的集合,任务是一段可执行的代码:构建文件中包含一个项目,在项目内部声明了所有目标: <target name = "run&q ...

  2. 编码原则 之 Hollywood Principle

    原文 The Hollywood Principle states, “Don’t Call Us, We’ll Call You.” It’s closely related to the Depe ...

  3. TCP协议三次握手、四次挥手

    TCP的概述 TCP 把连接作为最基本的对象,每一条 TCP 连接都有两个端点,这种断点我们叫作套接字(socket),它的定义为端口号拼接到 IP 地址即构成了套接字,例如,若 IP 地址为 192 ...

  4. Ubuntu 14.04 更新 setuptools 至 19.2 版本

    参考: Error: "No module named _markerlib" when installing some packages on virtualenv Ubuntu ...

  5. FZOJ P2109 【卡德加的兔子】

    题目描述 卡德加喜欢养兔子.他在达拉然的下水道里放了 $N$ 个兔笼(编号从 $1$ 到 $N$),里面养着他从德拉诺带来的兔子.它们的繁殖遵循斐波那契数列的规律:刚开始时,笼子里有一对刚出生的兔子. ...

  6. 【Mac】【环境变量】

    Mac配置环境变量的地方  1./etc/profile   (建议不修改这个文件 )  全局(公有)配置,不管是哪个用户,登录时都会读取该文件.    2./etc/bashrc    (一般在这个 ...

  7. ios外包公司——技术分享:手机应用开发步骤

    1. 确定你的创意 您的创意是否有人做过,如果有类似的app,那就要多多考虑,争取超越并且有一些独特的优化设计在其中 2. 定位应用 通过苹果的人机界面指南(Human Interface Guide ...

  8. SQL LITE安装

    SQLite是一款轻型的嵌入式关系数据库,轻量级,效率高,操作起来也特别方便我们今天来讲解一下SQLite的安装和一些基本操作SQLite下载我是64位机,下载下面的两个解压就好添加path环境变量, ...

  9. 每天跟着书敲Mysql

    要深入学下Mysql操作啦 CRUD,create,retrieve,update,delete

  10. fast-route的使用

    <?php require 'vendor/autoload.php'; // 通过 FastRoute\simpleDispatcher() 方法定义路由,第一个参数必须是 FastRoute ...