如何优雅地处理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引用DLL文件的方法
May 11 Python
Python中的pass语句使用方法讲解
May 14 Python
Python用zip函数同时遍历多个迭代器示例详解
Nov 14 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
Jul 13 Python
轻松理解Python 中的 descriptor
Sep 15 Python
简述Python2与Python3的不同点
Jan 21 Python
详解django三种文件下载方式
Apr 06 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
浅谈Django的缓存机制
Aug 23 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 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 多进程 解决难题
2009/06/22 PHP
php模块memcache和memcached区别分析
2011/06/14 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
php管理nginx虚拟主机shell脚本实例
2014/11/19 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
PHP7匿名类用法分析
2016/09/26 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
用javascript获取地址栏参数
2006/12/22 Javascript
javascript 命名规则 变量命名规则
2010/02/25 Javascript
JavaScript中使用Callback控制流程介绍
2015/03/16 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
微信小程序实现锚点定位楼层跳跃的实例
2017/05/18 Javascript
浅谈JS对象添加getter与setter的5种方法
2018/06/09 Javascript
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
PyTorch学习笔记之回归实战
2018/05/28 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
Python3删除排序数组中重复项的方法分析
2019/01/31 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
Django models文件模型变更错误解决
2020/05/11 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
司马光教学反思
2014/02/01 职场文书
全国税务系统先进集体事迹材料
2014/05/19 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
开场白怎么写
2015/06/01 职场文书
运动会100米广播稿
2015/08/19 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书