前言
favicon.ico是網站的圖標也是網站的頭像,簡單來說,就是讓我們的網站更加好看。
本文主要給大家介紹了關于優雅處理Django中favicon.ico圖標的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧
起步
默認情況下,瀏覽器會訪問網站 "/favicon.ico" 這個地址獲取網站的圖標。如果沒有配置的話,Django 會返回一個 404 錯誤。這對于強迫癥的人來說,真的很煩。我們有現有的圖標,且按開發規范一般存放 static/ 下。
網上的方法
網上找了大概兩種處理方式,但都不夠優雅。
方法一:使用重定向
在項目的 urls.py 中添加規則:
from django.urls import pathfrom django.views.generic.base import RedirectViewurlpatterns=[ ... 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 serveurlpatterns = [ ... path('favicon.ico', serve, {'path': 'img/favicon.ico'}),]
從根本上解決還不反彈,很棒,很好很強大。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林站長站的支持。
新聞熱點
疑難解答