如何优雅地处理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中的函数用法入门教程
Sep 02 Python
python实现根据ip地址反向查找主机名称的方法
Apr 29 Python
基于python的七种经典排序算法(推荐)
Dec 08 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
Apr 27 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
Python简单实现两个任意字符串乘积的方法示例
Apr 12 Python
python实现比较文件内容异同
Jun 22 Python
如何使用Python标准库进行性能测试
Jun 25 Python
python实现计算器功能
Oct 31 Python
python代码能做成软件吗
Jul 24 Python
Python extract及contains方法代码实例
Sep 11 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
以文本方式上传二进制文件的PHP程序
2006/10/09 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
jQuery之选择组件的深入解析
2013/06/19 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
jQuery实现图片简单轮播功能示例
2018/08/13 jQuery
vue项目创建步骤及路由router
2020/01/14 Javascript
JS实现4位随机验证码
2020/10/19 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
python os.fork() 循环输出方法
2019/08/08 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
容易被忽略的Python内置类型
2020/09/03 Python
财务经理岗位职责
2013/11/09 职场文书
业务总经理岗位职责
2014/02/03 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
治安消防安全责任书
2014/07/23 职场文书
农村文化建设标语
2014/10/07 职场文书
银行贷款收入证明
2014/10/17 职场文书
感谢信的格式
2015/01/21 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
加班费申请报告
2015/05/15 职场文书
妇产科护理心得体会
2016/01/22 职场文书
导游词之丽江普济寺
2019/10/22 职场文书
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python
详细了解MVC+proxy
2021/07/09 Java/Android
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android