【Flask】 Not Found: /favicon.ico 專案logo圖示載入
阿新 • • 發佈:2018-11-22
當瀏覽器訪問我們的伺服器時,瀏覽器會預設請求專案根路徑下的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圖示,還要清空瀏覽器快取,重新訪問。