如何优雅地处理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之总结参数的传递
Oct 10 Python
在Python中调用ggplot的三种方法
Apr 08 Python
Python 26进制计算实现方法
May 28 Python
Python绘制3D图形
May 03 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
Python玩转Excel的读写改实例
Feb 22 Python
python matplotlib画图库学习绘制常用的图
Mar 19 Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 Python
对Tensorflow中Device实例的生成和管理详解
Feb 04 Python
Python 多线程共享变量的实现示例
Apr 17 Python
python 基于opencv去除图片阴影
Jan 26 Python
Python爬虫UA伪装爬取的实例讲解
Feb 19 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
yii框架源码分析之创建controller代码
2011/06/28 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
PHP身份证校验码计算方法
2016/08/10 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
javascript之更有效率的字符串替换
2008/08/02 Javascript
jquery怎样实现ajax联动框(二)
2013/03/08 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
JavaScript模块随意拖动示例代码
2014/05/27 Javascript
jQuery绑定事件不执行但alert后可以正常执行
2014/06/03 Javascript
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
理解javascript中的闭包
2017/01/11 Javascript
微信小程序新增的拖动组件movable-view使用教程
2017/05/20 Javascript
vue刷新页面时去闪烁提升用户体验效果的实现方法
2018/12/10 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
Python 专题四 文件基础知识
2017/03/20 Python
基于Python的XSS测试工具XSStrike使用方法
2017/07/29 Python
Python+threading模块对单个接口进行并发测试
2019/06/25 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
Python bisect模块原理及常见实例
2020/06/17 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
详解Django ORM引发的数据库N+1性能问题
2020/10/12 Python
python爬取youtube视频的示例代码
2021/03/03 Python
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
Anthropologie英国:美国家喻户晓的休闲服装和家居产品品牌
2018/12/05 全球购物
BAILEY 44官网:美国制造的女性服装
2019/07/01 全球购物
计算机应用与科学个人的自我评价
2013/11/15 职场文书
经典大学生求职信范文
2014/01/06 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
交通肇事罪辩护词
2015/05/21 职场文书
中学总务处工作总结
2015/08/12 职场文书
党组织结对共建协议书
2016/03/23 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python