如何优雅地处理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分割和拼接字符串
Nov 01 Python
Python学习笔记(二)基础语法
Jun 06 Python
在Python中使用base64模块处理字符编码的教程
Apr 28 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
对Python random模块打乱数组顺序的实例讲解
Nov 08 Python
Python3自动签到 定时任务 判断节假日的实例
Nov 13 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
matplotlib.pyplot画图并导出保存的实例
Dec 07 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
基于python实现简单C/S模式代码实例
Sep 14 Python
Python实战之OpenCV实现猫脸检测
Jun 26 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php 图片加水印与上传图片加水印php类
2010/05/12 PHP
PHP的autoload自动加载机制使用说明
2010/12/28 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
PHP获取当前日期及本周一是几月几号的方法
2017/03/28 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
angularjs封装bootstrap时间插件datetimepicker
2016/06/20 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
JS实现线性表的链式表示方法示例【经典数据结构】
2017/04/11 Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
2017/07/11 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
2017/09/14 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
js 实现watch监听数据变化的代码
2019/10/13 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
Python 创建子进程模块subprocess详解
2015/04/08 Python
Python编码爬坑指南(必看)
2016/06/10 Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
2018/05/30 Python
python卸载后再次安装遇到的问题解决
2019/07/10 Python
canvas学习笔记之绘制简单路径
2019/01/28 HTML / CSS
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
三星法国官方网站:Samsung法国
2019/10/31 全球购物
技校教师求职简历的自我评价
2013/10/20 职场文书
运动会广播稿60字
2014/01/15 职场文书
幼儿园门卫制度
2014/01/29 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
学习型家庭事迹材料(2016精选版)
2016/02/29 职场文书
总结Python变量的相关知识
2021/06/28 Python
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL