如何优雅地处理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常用列表数据结构小结
Aug 06 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
关于Django外键赋值问题详解
Aug 13 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
Jan 04 Python
python实现堆和索引堆的代码示例
Mar 19 Python
Django model序列化为json的方法示例
Oct 16 Python
解决pyttsx3无法封装的问题
Dec 24 Python
详解小白之KMP算法及python实现
Apr 04 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
Nov 11 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
Feb 24 Python
Python dict和defaultdict使用实例解析
Mar 12 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处理json时中文问题的解决方法
2011/04/12 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
js获得地址栏?问号后参数的方法
2013/08/08 Javascript
html向js方法传递参数具体实现
2013/08/08 Javascript
javascript中解析四则运算表达式的算法和示例
2014/08/11 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
js点击选择文本的方法
2015/02/09 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
VUE DEMO之模拟登录个人中心页面之间数据传值实例
2019/10/31 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
利用OpenCV和Python实现查找图片差异
2019/12/19 Python
python tkinter 设置窗口大小不可缩放实例
2020/03/04 Python
解决 jupyter notebook 回车换两行问题
2020/04/15 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
python爬虫调度器用法及实例代码
2020/11/30 Python
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
学生宿舍管理制度
2014/01/30 职场文书
意向书范文
2014/03/31 职场文书
公司任命书模板
2014/06/06 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
教你用Python+selenium搭建自动化测试环境
2021/06/18 Python
浅析Django接口版本控制
2021/06/26 Python
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android