如何优雅地处理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 相关文章推荐
精确查找PHP WEBSHELL木马的方法(1)
Apr 12 Python
python实现人人网登录示例分享
Jan 19 Python
python中字典dict常用操作方法实例总结
Apr 04 Python
详解Python多线程
Nov 14 Python
python中 chr unichr ord函数的实例详解
Aug 06 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
基于 Django 的手机管理系统实现过程详解
Aug 16 Python
numpy.transpose()实现数组的转置例子
Dec 02 Python
python matplotlib中的subplot函数使用详解
Jan 19 Python
Python机器学习应用之基于线性判别模型的分类篇详解
Jan 18 Python
Python实现将多张图片合成MP4视频并加入背景音乐
Apr 28 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生成指定长度随机数最简洁的方法
2014/07/14 PHP
php通过获取头信息判断图片类型的方法
2015/06/26 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
对于this和$(this)的个人理解
2013/09/08 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
解决Window10系统下Node安装报错的问题分析
2016/12/13 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
前端开发不得不知的10个最佳ES6特性
2017/08/30 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
electron实现静默打印的示例代码
2019/08/12 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
python代码中怎么换行
2020/06/17 Python
Python内置函数及功能简介汇总
2020/10/13 Python
纯CSS3实现3D旋转书本效果
2016/03/21 HTML / CSS
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
党校培训自我鉴定范文
2014/04/10 职场文书
《沙漠中的绿洲》教学反思
2014/04/24 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
大学生村官个人总结
2015/02/15 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
欠款证明
2015/06/24 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
Spring Boot项目传参校验的最佳实践指南
2022/04/05 Java/Android
Android Studio实现带三角函数对数运算功能的高级计算器
2022/05/20 Java/Android