如何优雅地处理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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
详解Python中映射类型(字典)操作符的概念和使用
Aug 19 Python
Python简单格式化时间的方法【strftime函数】
Sep 18 Python
Python 2.7中文显示与处理方法
Jul 16 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
Python 处理图片像素点的实例
Jan 08 Python
Puppeteer使用示例详解
Jun 20 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
Matplotlib中%matplotlib inline如何使用
Jul 28 Python
理解Django 中Call Stack机制的小Demo
Sep 01 Python
Python爬虫代理池搭建的方法步骤
Sep 28 Python
python 实现&quot;神经衰弱&quot;翻牌游戏
Nov 09 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/02/15 PHP
使用图灵api创建微信聊天机器人
2015/07/23 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
js函数的延迟加载实现代码
2012/10/11 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
深入浅析JS的数组遍历方法(推荐)
2016/06/15 Javascript
javascript设计模式Constructor(构造器)模式
2016/08/19 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
jQuery中.attr()和.data()的区别分析
2017/09/03 jQuery
vue组件间通信子与父详解(二)
2017/11/07 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
2018/05/17 Javascript
vuejs选中当前样式active的实例
2018/08/22 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
在React项目中使用Eslint代码检查工具及常见问题
2018/10/10 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
python将图片文件转换成base64编码的方法
2015/03/14 Python
Python时间的精准正则匹配方法分析
2017/08/17 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
python如何从键盘获取输入实例
2020/06/18 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
捷克鲜花配送:Florea.cz
2018/10/29 全球购物
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
小学生自我鉴定
2013/10/12 职场文书
期末自我鉴定
2014/02/02 职场文书
入党积极分子自我鉴定范文
2014/03/25 职场文书
双拥工作宣传标语
2014/06/26 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
Django模型层实现多表关系创建和多表操作
2021/07/21 Python