如何优雅地处理Django中的favicon.ico图标详解


Posted in Python onJuly 05, 2018

前言

favicon.ico是网站的图标也是网站的头像,简单来说,就是让我们的网站更加好看。

本文主要给大家介绍了关于优雅处理Django中favicon.ico图标的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

起步

默认情况下,浏览器会访问网站 "/favicon.ico" 这个地址获取网站的图标。如果没有配置的话,Django 会返回一个 404 错误。这对于强迫症的人来说,真的很烦。我们有现有的图标,且按开发规范一般存放 static/ 下。

网上的方法

网上找了大概两种处理方式,但都不够优雅。

方法一:使用重定向

在项目的 urls.py 中添加规则:

from django.urls import path
from django.views.generic.base import RedirectView

urlpatterns=[
 ...
 path('favicon.ico', RedirectView.as_view(url='static/img/favicon.ico')),  
]

这种方式我认为是最不好的一种方式,它会让浏览器产生一个新的请求。

方法二:指定图标地址

这种方法就是告诉浏览器,网站图片的正确地址,因此需要在模板中的头部指定:

{% load staticfiles %}
<head lang="zh">
 <meta charset="UTF-8">
 <link rel="shortcut icon" href="{%static " rel="external nofollow" img/favicon.ico" %}" /> <!-- 添加这行 -->
 <title></title>
</head>

这种方法也挺好的。但我还是想从 /favicon.ico 这个地址中解决这个问题。

最优雅的方式

django 有自己的静态文件的处理方法,那就可以设置 url 规则,返回某个静态文件的:

from django.contrib.staticfiles.views import serve

urlpatterns = [
 ...
 path('favicon.ico', serve, {'path': 'img/favicon.ico'}),
]

从根本上解决还不反弹,很棒,很好很强大。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python函数装饰器用法实例详解
Jun 04 Python
Windows安装Python、pip、easy_install的方法
Mar 05 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
微信跳一跳小游戏python脚本
Jan 05 Python
Python使用遗传算法解决最大流问题
Jan 29 Python
Python实现的远程登录windows系统功能示例
Jun 21 Python
python3基于OpenCV实现证件照背景替换
Jul 18 Python
python查看数据类型的方法
Oct 12 Python
PIL包中Image模块的convert()函数的具体使用
Feb 26 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 Python
Python APScheduler执行使用方法详解
Dec 10 Python
基于Python的EasyGUI学习实践
May 07 Python
解决pandas中读取中文名称的csv文件报错的问题
Jul 04 #Python
解决Python pandas df 写入excel 出现的问题
Jul 04 #Python
python处理数据,存进hive表的方法
Jul 04 #Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
Jul 04 #Python
使用pandas read_table读取csv文件的方法
Jul 04 #Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
Jul 04 #Python
Python读取mat文件,并转为csv文件的实例
Jul 04 #Python
You might like
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
PHP中类的继承和用法实例分析
2016/05/24 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
thinkPHP订单数字提醒功能的实现方法
2016/12/01 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
代码生成器 document.write()
2007/04/15 Javascript
Javascript 读书笔记索引贴
2010/01/11 Javascript
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
浅谈JavaScript作用域和闭包
2017/09/18 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
Python中input和raw_input的一点区别
2014/10/21 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
Django开发中复选框用法示例
2018/03/20 Python
PyQt打开保存对话框的方法和使用详解
2019/02/27 Python
详解python 支持向量机(SVM)算法
2020/09/18 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
浅谈css3新单位vw、vh、vmin、vmax的使用详解
2017/12/01 HTML / CSS
英国著名的化妆品折扣网站:Allbeauty.com
2016/07/21 全球购物
加拿大时装零售商:Influence U
2018/12/22 全球购物
网上卖盒饭创业计划书
2014/01/26 职场文书
小学少先队活动方案
2014/02/18 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
新年晚会主持词
2014/03/24 职场文书
教师对学生的寄语
2014/04/03 职场文书
授权委托书格式
2014/07/31 职场文书
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android