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共享,这个问题以后再探讨吧???
Django App(五) load static files的更多相关文章
- Django 静态文件配置(static files)
Django version: 1.9 Python versrion: 3.5.2 这几天Django配置静态文件(本例是要加载index.css), 总是不对,最后终于试对了,这里记录下,方便以后 ...
- frist Django app — 五、Test
Test——很重要但是没有被重视起来的一个环节,至少是我自己,其实自己之前在做java web的时候就去尝试过怎么做REST接口的测试,一直没有找到一种合适方式,而且因为时间紧没有进一步深究,但是造成 ...
- Express细节探究(1)——app.use(express.static)
express相信是很多人用nodejs搭建服务器的首选框架,相关教程有很多,也教会了大家来如何使用.如果你想更深的了解他的细节,不妨和我一起来研究一下. 先来看一个每个人都用到的方法app.use( ...
- [转]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 ...
- Settings Django Static Files
静态文件是通过django.contrib.staticfiles来管理的. 配置Django静态文件,Djang官网静态文件配置介绍.简言之,通过以下三个步骤来配置和加载静态文件: 设置静态文件别名 ...
- Django基础,Day7 - 添加静态文件 static files
添加css样式文件 1.首先在app目录下创建static文件夹,如polls/static.django会自动找到放在这里的静态文件. AppDirectoriesFinder which look ...
- 【Azure 应用服务】App Service For Windows 环境中部署Python站点后,如何继续访问静态资源文件呢(Serving Static Files)?
问题描述 当创建一个App Service 后,运行时环境和版本选择Windows 和 Python 3.6. 登录Kudu 站点查看,默认的文件有 web.config, hostingstart- ...
- django之模板系统 --》内容(filter过滤器、tags标签【for、if、with】、母板以及继承、crf_token、注释、组件、静态文件【load static】、get_static_prefix、自定义标签和tag)
常用: Django模板中只需要记两种特殊符号: {{ }}和 {% %} {{ }}表示变量,在模板渲染的时候替换成值,{% %}表示逻辑相关的操作. 变量 {{ 变量名 }} 变量名由字母数字和下 ...
- Django 2.0.1 官方文档翻译: 编写你的第一个 Django app,第五部分(Page 10)
编写你的第一个 Django app,第五部分(Page 10)转载请注明链接地址 我们继续建设我们的 Web-poll 应用,本节我们会为它创建一些自动测试. 介绍自动测试 什么是自动测试 测试是简 ...
随机推荐
- shift键有什么用?怎么用?shift键的妙用
一.当你用QQ和别人聊天时,是不是有时信息发送的特别慢呀,不要紧,只要你发信息时按shift 键信息就会很快的发送出去的! 二.当你面对一大堆窗口,却要一个一个把它们关掉时.是不是很烦啊.只要你按sh ...
- Filter中request对象强转问题
以下为过滤器doFIlter方法的源代码: public void doFilter(ServletRequest request, ServletResponse response, FilterC ...
- Linux 查看dns运行状态
命令:dig www.baidu.com #测试解析 安装:yum install bind-utils @<服务器地址>:指定进行域名解析的域名服务器: -b<ip地址>: ...
- ORA-12801/ORA-12853: insufficient memory for PX buffers: current 274880K, max needed 19722240K/ORA-04031解决方法
近日,现场一台服务器在运行时出现下列异常: ORA-12801: error signaled in parallel query server P139 ORA-12853: insufficien ...
- Mac配置Scala和Spark最详细过程
Mac配置Scala和Spark最详细过程 原文链接: http://www.cnblogs.com/blog5277/p/8567337.html 原文作者: 博客园--曲高终和寡 一,准备工作 1 ...
- Appium Desktop-Permission to start activity denied.
可能情况1:activity查找错误 如何查找activity (1)确保手机和电脑已连接 adb devices (2)确保在你手机上,要测试的包启动着 (3)dos运行:adb shell d ...
- 非递归遍历N-ary树Java实现
2019-03-25 14:10:51 非递归遍历二叉树的Java版本实现之前已经进行了总结,这次做的是非递归遍历多叉树的Java版本实现. 在非递归遍历二叉树的问题中我个人比较推荐的是使用双whil ...
- LeetCode--023--合并K个排序链表
合并 k 个排序链表,返回合并后的排序链表.请分析和描述算法的复杂度. 示例: 输入: [ 1->4->5, 1->3->4, 2->6 ] 输出: 1-&g ...
- android -------- MVP+DataBinding 的使用
今天来说说MVP+DataBinding 的使用 以一个登录案例来讲解 布局:(ConstraintLayout 作为根布局) <layout> <data> <vari ...
- 『计算机视觉』Mask-RCNN_训练网络其一:数据集与Dataset类
Github地址:Mask_RCNN 『计算机视觉』Mask-RCNN_论文学习 『计算机视觉』Mask-RCNN_项目文档翻译 『计算机视觉』Mask-RCNN_推断网络其一:总览 『计算机视觉』M ...