如何优雅地处理Django中的favicon.ico图标详解
前言
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 %}
这种方法也挺好的。但我还是想从 /favicon.ico 这个地址中解决这个问题。
最优雅的方式
django 有自己的静态文件的处理方法,那就可以设置 url 规则,返回某个静态文件的:
from django.contrib.staticfiles.views import serve
urlpatterns = [
...
path('favicon.ico', serve, {'path': 'img/favicon.ico'}),
]
从根本上解决还不反弹,很棒,很好很强大。
Django添加favicon.ico图标的示例代码
所谓favicon,即Favorites Icon的缩写,让浏览器的收藏夹中除显示相应的标题外,还以图标的方式区别不同的网站。
默认情况下,浏览器访问一个网站的时候,同时还会向服务器请求“/favicon.ico”这个URL,目的是获取网站的图标。
若是没有配置的话,Django就会返回一个404错误,并且浏览器接收到这个404错误后不会显示出来,一般不会被察觉。
但是服务器要是开启日志记录的话,这错误就会一直记录下来,累积一大堆无用的记录。
添加favicon.ico图标的方法有两种
首先先制作一个ico文件,使用PS或者某些在线生成ico的网站即可,我是在下面的网站生成的,当然,你也可以用其他网站!
/aideddesign/ico_img
下载后将此文件命名为“favicon.ico”后放在static/blog/img/下
方法一、在url.py中添加:
from Django.views.generic.base import RedirectView
urlpatterns=[
...
# favicon.cio
url(r'^favicon\.ico$', RedirectView.as_view(url=r'static/blog/img/favicon.ico')),
]
把请求"/favicon.ico",指向static/blog/img/favicon.ico 这个文件,重新部署一下项目就可以看到你想要的效果。
方法二、在页面直接重定向:
{% load staticfiles %}
...
...
刷新一下,就可以看到效果了哦!!!
记住,一定要把他放在全局head标签里面,这样才会获得应有的效果!!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。
以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。