人生苦短 ~

Tips:仅适用于 Python 3+(反正差别不大,py2 改改也能用)。因为据 Python 之父 Guido van Rossum 说会在 2020 年停止对 Python 2 的官方支持,所以如果你还在使用 Python 2 那就要早做准备了,毕竟没有官方的支持使用起来也不顺心的。

1. 创建目录

在我们的项目中创建静态文件存放目录,HelloDjango 目录下创建文件夹 static,然后在 static 文件目录中新建 js、css、images 三个文件夹用于存放静态资源文件

HelloDjango
|----HelloDjango
|----manage.py
|----db.sqlite3
|----mydjango
|----templates
|----static
|----images
|----css
|----js

2. 设置静态文件目录

打开文件 settings.py,在该文件中查找变量 STATIC_URL,在该变量下添加如下代码:

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

STATIC_URL 定义了 web 服务链接媒体的 URL 地址,STATICFILES_DIRS 允许自定义新的 static 目录。

3. 访问图片

在我们的静态目录中(/static/images/)放入一张 2018.jpg 图片,打开我们的 Django 服务访问我们的图片(http://127.0.0.1:8000/static/images/2018.jpg):

如果没有出现请查看 setings.py 文件是否设置正确,并重启服务。如果出现了,试着加入其他类型的文件到 static 目录并在浏览器上访问。

4. 模版中加载图片

把我们的模版文件 index.html 文件修改如下:

<!DOCTYPE html>
{% load static %} <!-- 模板标签加载静态文件路径,也可以改成 load staticfiles -->
<html>
<head>
<title>HelloDjango</title>
</head>
<body>
<a href="/mydjango/index/">Index</a><hr />
<h3>HelloDjango</h3>
动态数据:<strong>{{ mydata }}</strong>
<hr />
<img src="{% static 'images/2018.jp' %}" /> <!-- 加载我们的静态图片 -->
</body>
</html>

在这里需要注意的是头部的  {% load static %} 是不可以缺少的,因为不引用的话就不能在加载图片时使用 static。

最后如果幸运的话输入网址(http://127.0.0.1:8000/mydjango/hello/)将会出现如下界面:

需要注意的一点是:

在 settings.py 文件中 DEBUG = True 的时候,Django 会帮我们加载我们的静态资源文件;

但是,在 DEBUG = False 的时候,Django 就不会帮我们加载我们的静态资源文件,会出现 404 错误,这时候需要其他工具来配置访问我们的静态资源文件,如 Nginx。

~ 我学 Python

Django 学习笔记(三) --- HTML 模版加载 css、js、img 静态文件的更多相关文章

  1. nginx 无法加载css/js图片等文件 404 not fund

    刚配置Nginx反向代理,Nginx可能会出现无法加载css.js或者图片等文件,这里需要在配置文件*.conf里面加上如下配置项. location ~ .*\.(js|css|png|jpg)$ ...

  2. Spring Boot thymeleaf模版支持,css,js等静态文件添加

    Thymeleaf引入 Thymeleaf是一个Java模板引擎开发库,可以处理和生成HTML.XML.JavaScript.CSS和文本,在Web和非Web环境下都可以正常工作. 1.添加依赖包 & ...

  3. [置顶] iOS学习笔记47——图片异步加载之EGOImageLoading

    上次在<iOS学习笔记46——图片异步加载之SDWebImage>中介绍过一个开源的图片异步加载库,今天来介绍另外一个功能类似的EGOImageLoading,看名字知道,之前的一篇学习笔 ...

  4. Flutter学习笔记(19)--加载本地图片

    如需转载,请注明出处:Flutter学习笔记(19)--加载本地图片 上一篇博客正好用到了本地的图片,记录一下用法: 首先新建一个文件夹,这个文件夹要跟目录下 然后在pubspec.yaml里面声明出 ...

  5. jQuery中的ready方法及实现按需加载css,js

    模拟jQuery中的ready方法及实现按需加载css,js 一.ready函数的实现 经常用jQuery类库或其他类库中的ready方法,有时候想想它们到底是怎么实现的,但是看了一下jQuery中的 ...

  6. 模拟jQuery中的ready方法及实现按需加载css,js实例代码

    这篇文章介绍了模拟jQuery中的ready方法及实现按需加载css,js实例代码,有需要的朋友可以参考一下     一.ready函数的实现经常用jQuery类库或其他类库中的ready方法,有时候 ...

  7. 网站加载css/js/img等静态文件失败

    网站加载css/js/img等静态文件失败,报网站http服务器内部500错误.而服务器中静态文件存在且权限正常. 从浏览器中直接访问文件,出来乱码.这种问题原因在于iis中该网站mime配置报错,不 ...

  8. asp.net MVC发布iis无法加载css,js和图片

    今天真够郁闷的,遇到了在本地能运行的项目到了iis服务器那里就不行了,无法加载css,js和图片,这里说清楚一下先,关于asp.net 的MVC中这样的情况其实不少,但是之前遇到的是在visual s ...

  9. 文字添加响应事件,js动态加载CSS, js弹出DIV

    文字添加响应事件,js动态加载CSS, js弹出DIV <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

随机推荐

  1. Python之路(第二十九篇) 面向对象进阶:内置方法补充、异常处理

    一.__new__方法 __init__()是初始化方法,__new__()方法是构造方法,创建一个新的对象 实例化对象的时候,调用__init__()初始化之前,先调用了__new__()方法 __ ...

  2. java中date日期格式的各种转换

    示例 Date dt =new Date(); System.out.println(dt); //格式: Wed Jul 06 09:28:19 CST 2016 //格式:2016-7-6 Str ...

  3. SQLite3命令操作大全

    SQLite3命令操作大全 SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令.本文档提供一个样使用sqlite3的简要说明. 一.ql ...

  4. 20175316盛茂淞 2018-2019-2 《Java程序设计》第5周学习总结

    20175316盛茂淞 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 第六章 接口与实现. 何谓接口 接口:书上没有明确地给出接口的定义,我理解的接口就是一 ...

  5. 开启hadoop集群

    首先开启zookeeper zkServer.sh start start-all

  6. SIFT算法

     备注:源代码还未理解,所以未附上——下周任务 一.SIFT算法 1.算法简介 尺度不变特征转换即SIFT (Scale-invariant feature transform)是一种计算机视觉的算法 ...

  7. C#字符串操作方法签名等

    class Program { /// <summary> /// C# 里Main方法不需要public,而且不允许有两个是Main(string[] args)[包括String[] ...

  8. Codeforces Round #512 (Div. 2) D. Vasya and Triangle

    参考了别人的思路:https://blog.csdn.net/qq_41608020/article/details/82827632 http://www.cnblogs.com/qywhy/p/9 ...

  9. postgresql vacuum操作

    postgresql vacuum操作 PostgreSQL数据库管理工作中,定期vacuum是一个重要的工作.vacuum的效果: 1.1释放,再利用 更新/删除的行所占据的磁盘空间. 1.2更新P ...

  10. nlog 的手动配置

    使用nlog的时候,有时候需要手动配置.比如数据库链接和密码不配在文件里,或者统计配置在一个位置之类的. var config = new NLog.Config.LoggingConfigurati ...