如何优雅地处理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用ConfigObj读写配置文件的实现代码
Mar 04 Python
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
在Python中使用模块的教程
Apr 27 Python
Python中shape计算矩阵的方法示例
Apr 21 Python
python判断数字是否是超级素数幂
Sep 27 Python
python实现旋转和水平翻转的方法
Oct 25 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
python输出决策树图形的例子
Aug 09 Python
Python求正态分布曲线下面积实例
Nov 20 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
如何设置PyCharm中的Python代码模版(推荐)
Nov 20 Python
Python超简单容易上手的画图工具库推荐
May 10 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面向对象
2012/02/22 PHP
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
Javascript中的数学函数
2007/04/04 Javascript
JAVASCRIPT keycode总结
2009/02/04 Javascript
用 Javascript 验证表单(form)中多选框(checkbox)值
2009/09/08 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
javascript表单验证使用示例(javascript验证邮箱)
2014/01/07 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
javascript trim函数在IE下不能用的解决方法
2014/09/12 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
javascript闭包(Closure)用法实例简析
2015/11/30 Javascript
深入探讨Vue.js组件和组件通信
2016/09/12 Javascript
React实现点击删除列表中对应项
2017/01/10 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
js实现导航跟随效果
2018/11/17 Javascript
js实现微信聊天效果
2020/08/09 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
[02:44]重置世界,颠覆未来——DOTA2 7.23版本震撼上线
2019/12/01 DOTA
横向对比分析Python解析XML的四种方式
2016/03/30 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
Python Selenium安装及环境配置的实现
2020/03/17 Python
keras中epoch,batch,loss,val_loss用法说明
2020/07/02 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
公益活动策划方案
2014/01/09 职场文书
村庄环境整治方案
2014/05/15 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
自主招生自荐信怎么写
2015/03/24 职场文书
浅谈CSS不规则边框的生成方案
2021/05/25 HTML / CSS