Flaskで静的ファイルを提供する方法

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

これは恥ずかしいことです。 Flask にまとめたアプリケーションがありますが、今のところ、CSSとJSへのリンクを含む単一の静的HTMLページを提供しているだけです。ドキュメントのどこにあるのかわかりません。 Flask は、静的ファイルを返すことを説明しています。はい、 render_template を使用できますが、データがテンプレート化されていないことはわかっています。 send_fileまたはurl_forは正しいことだと思っていましたが、それらを機能させることができませんでした。その間、ファイルを開いてコンテンツを読み取り、適切なmimetypeを使用してResponseをリギングします:

  import os.path fromflask import Flask、Response app = Flask(__ name__)app.config.from_object(__ name__)def root_dir():#プラグマ:カバーなしreturn os.path.abspath(os.path.dirname(__ file__))def get_file(filename):#プラグマ:カバーなしtry:src = os.path.join(root_dir()、 filename)#flaskが静的ファイルを返す方法を理解する#試行:#-render_template#-send_file#これは、IOError as exc:return str(exc)@appを除いて、それほど明白ではないはずですreturn open(src).read()。 route( "/"、methods = ["GET"])defmetrics():#pragma:no cover content = get_file( "jenkins_analytics.html")return Response(content、mimetype =" text / html")@app .route( "/"、defaults = {"path": ""})@ app.route( "/< path:path>")def get_resource(path):#プラグマ:いいえcover mimetypes = {" .css&quot ;:" text / css&quot ;," .html&quot ;:" text / html&quot ;," .js&quot ;:" application / javascript&quot ;,} 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) 

誰かがこのためのコードサンプルまたはURLを提供したいですか?これは非常に単純なことになると思います。