如何在 Flask 中提供靜態文件

| | | | | | | | | | | | | | | | | | | | |

所以這很尷尬。我有一個應用程序,我把它放在 Flask 中,現在它只是提供一個帶有一些 CSS 和 JS 鏈接的靜態 HTML 頁面。而且我在文檔中找不到位置Flask 描述返回靜態文件。是的,我可以使用 render_template 但我知道數據沒有模板化。我曾認為 send_fileurl_for 是正確的,但我無法讓它們工作。與此同時,我正在打開文件,閱讀內容,然後使用適當的 mimetype 裝配 Response

import os.path from flask import Flask, Response app = Flask(__name__) app.config.from_object(__name__) def root_dir(): # pragma: no cover return os.path.abspath(os.path.dirname(__file__)) def get_file(filename): # pragma: no cover try: src = os.path.join(root_dir(), filename) # 弄清楚flask 如何返回靜態文件 # 嘗試過:# - render_template # - send_file # 這不應該如此不明顯 return open(src).read() 除了 IOError as exc: return str(exc) @app. route("/", methods=["GET"]) def metrics(): # pragma: no cover content = get_file("jenkins_analytics.html") return Response(content, mimetype="text/html") @app .route("/", defaults={"path": ""}) @app.route("/") def get_resource(path): # pragma: no覆蓋 mimetypes = { “.css”:“text/css”,“.html”:“text/html”,“.js”:“application/javascript”,} complete_path = os.path。 join(root_dir(), path) ext = os.path.splitext(path)[1] mimetype = mimetypes.get(ext, "text/html") content = get_file(complete_path) return Response(content, mimetype=mimetype ) if __name__ == "__main__": # pragma: no cover app.run(port=80) 

有人想為此提供代碼示例或網址嗎?我知道這將非常簡單。