如何优雅地处理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实现大文件排序的方法
Jul 10 Python
快速入门python学习笔记
Dec 06 Python
python使用logging模块发送邮件代码示例
Jan 18 Python
Python字典及字典基本操作方法详解
Jan 30 Python
python向字符串中添加元素的实例方法
Jun 28 Python
Python监控服务器实用工具psutil使用解析
Dec 19 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
Python 线性回归分析以及评价指标详解
Apr 02 Python
keras打印loss对权重的导数方式
Jun 10 Python
scrapy框架携带cookie访问淘宝购物车功能的实现代码
Jul 07 Python
Python 如何创建一个线程池
Jul 28 Python
解决import tensorflow导致jupyter内核死亡的问题
Feb 06 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
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
JavaScript闭包和回调详解
2017/08/09 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
Python中的startswith和endswith函数使用实例
2014/08/25 Python
Python装饰器decorator用法实例
2014/11/10 Python
Python中使用pprint函数进行格式化输出的教程
2015/04/07 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
浅谈pandas中shift和diff函数关系
2018/04/08 Python
对numpy中轴与维度的理解
2018/04/18 Python
python中的协程深入理解
2019/06/10 Python
Python正则表达式匹配日期与时间的方法
2019/07/07 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
Python类型转换的魔术方法详解
2020/12/23 Python
adidas澳大利亚官方网站:adidas Australia
2018/04/15 全球购物
全球最受追捧的运动服品牌领先数字目的地:Stylerunner
2020/11/25 全球购物
教师先进工作者事迹材料
2014/05/01 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
win10下go mod配置方式
2021/04/25 Golang
Golang bufio详细讲解
2022/04/21 Golang