如何优雅地处理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实现竖排打印传单手机号码易撕条
Mar 16 Python
python实现数据预处理之填充缺失值的示例
Dec 22 Python
python 以16进制打印输出的方法
Jul 09 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
Python的互斥锁与信号量详解
Sep 12 Python
python 实现二维字典的键值合并等函数
Dec 06 Python
python 实现在shell窗口中编写print不向屏幕输出
Feb 19 Python
利用python生成照片墙的示例代码
Apr 09 Python
浅谈Keras中shuffle和validation_split的顺序
Jun 19 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
Sep 29 Python
Python操作word文档插入图片和表格的实例演示
Oct 25 Python
基于python实现坦克大战游戏
Oct 27 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常用代码
2006/11/23 PHP
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
php设计模式之单例、多例设计模式的应用分析
2013/06/30 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
php延迟静态绑定实例分析
2015/02/08 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
jQuery随便控制任意div隐藏的方法
2013/06/28 Javascript
jQuery实现文本框邮箱输入自动补全效果
2015/11/17 Javascript
微信js-sdk地理位置接口用法示例
2016/10/12 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
Vue实现简易翻页效果源码分享
2018/11/08 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
Python数据库的连接实现方法与注意事项
2016/02/27 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
2016/06/07 Python
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python 最简单的实现适配器设计模式的示例
2020/06/30 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
美国南部最大的家族百货公司:Belk
2017/01/30 全球购物
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
2014全国两会心得体会
2014/03/17 职场文书
母亲节演讲稿
2014/05/27 职场文书
人事任命书怎么写
2014/06/05 职场文书
挂靠协议书
2015/01/27 职场文书
会计工作态度自我评价
2015/03/06 职场文书
办公室禁烟通知
2015/04/23 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
创业计划书之美容店
2019/09/16 职场文书