如何优雅地处理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 相关文章推荐
在Linux下调试Python代码的各种方法
Apr 17 Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
python对象及面向对象技术详解
Jul 19 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
May 16 Python
Python generator生成器和yield表达式详解
Aug 08 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
Python实现检测文件的MD5值来查找重复文件案例
Mar 12 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
May 17 Python
python之随机数函数的实现示例
Dec 30 Python
python将图片转为矢量图的方法步骤
Mar 30 Python
Python实现打乒乓小游戏
Sep 25 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中的PHP_EOL换行符详细解析
2013/10/26 PHP
php实现微信发红包
2015/12/05 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
jquery中.add()的使用分析
2013/04/26 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
javaScript语法总结
2016/11/25 Javascript
JS经典正则表达式笔试题汇总
2016/12/15 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
原生实现一个react-redux的代码示例
2018/06/08 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
跟混乱的页面弹窗说再见
2019/04/11 Javascript
Vue开发中遇到的跨域问题及解决方法
2020/02/11 Javascript
JS中FileReader类实现文件上传及时预览功能
2020/03/27 Javascript
Python中有趣在__call__函数
2015/06/21 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
python3中int(整型)的使用教程
2017/03/23 Python
Python实现数据库并行读取和写入实例
2017/06/09 Python
基于Python代码编辑器的选用(详解)
2017/09/13 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
Python列表list操作相关知识小结
2020/01/29 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
The Hut美国/加拿大:英国领先的豪华在线百货商店
2019/03/26 全球购物
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
一个大学生十年的职业规划
2014/01/17 职场文书
王老吉广告词
2014/03/20 职场文书
仓库规划计划书
2014/04/28 职场文书
Python图像处理之图像拼接
2021/04/28 Python