1. 程式人生 > >【Flask】 Not Found: /favicon.ico 專案logo圖示載入

【Flask】 Not Found: /favicon.ico 專案logo圖示載入

當瀏覽器訪問我們的伺服器時,瀏覽器會預設請求專案根路徑下的favicon.ico檔案,根目錄下沒有這個檔案,所以就報了這個錯誤。

INFO:werkzeug:127.0.0.1 - -  "GET /favicon.ico HTTP/1.1" 404 -

如何解決:

瀏覽器請求的是/favicon.ico,如圖:

所以我們定義一個這樣的路徑,通過具體的方法實現就可以了,我們要做的是把favicon.ico檔案,放到static資料夾下。

from flask import current_app


# http://127.0.0.1:5000/favicon.ico
@news_blue.route('/favicon.ico')
def favicon():
    # 後端返回檔案給前端(瀏覽器),send_static_file是Flask框架自帶的函式
    return current_app.send_static_file('static/favicon.ico')

那send_static_file是怎麼實現的呢?

首先進入Flask類原始碼,可以看到Flask靜態路由就是通過這個函式實現的

然後點進send_static_file看一下

 注意:

# 這裡的'static/favicon.ico'中static是可有可無的,已經幫我們實現了
return current_app.send_static_file('static/favicon.ico')

不管寫沒寫static,路由都是下圖:

要顯示ico圖示,還要清空瀏覽器快取,重新訪問。