115

url_forフォルダー内のファイルを参照するために Flask でどのように使用しますか? たとえば、staticフォルダーにいくつかの静的ファイルがあり、その一部はstatic/bootstrap.

からファイルを提供しようとするとstatic/bootstrap、エラーが発生します。

 <link rel=stylesheet type=text/css href="{{ url_for('static/bootstrap', filename='bootstrap.min.css') }}">

これでサブフォルダーにないファイルを参照できますが、これは機能します。

 <link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}">

で静的ファイルを参照する正しい方法は何url_forですか? url_for任意のレベルで静的ファイルへの URL を生成するにはどうすればよいですか?

4

2 に答える 2

217

デフォルトでは、静的ファイルのstaticエンドポイントがあります。またFlask、アプリケーションには次の引数があります。

static_url_path: Web 上の静的ファイルに別のパスを指定するために使用できます。デフォルトはstatic_folderフォルダの名前です。

static_folder: で提供される静的ファイルを含むフォルダーstatic_url_path。デフォルトは、アプリケーションのルート パスにある「静的」フォルダーです。

これは、filename引数がファイルへの相対パスを取り、それを次static_folderの組み合わせの相対パスに変換することを意味しstatic_url_defaultます。

url_for('static', filename='path/to/file')

static_folder/path/to/fileは、ファイル パスをurl パスに変換しますstatic_url_default/path/to/file

したがって、static/bootstrapフォルダーからファイルを取得する場合は、次のコードを使用します。

<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='bootstrap/bootstrap.min.css') }}">

どちらが変換されますか (デフォルト設定を使用):

<link rel="stylesheet" type="text/css" href="static/bootstrap/bootstrap.min.css">

url_forドキュメントも参照してください。

于 2013-05-03T06:36:46.137 に答える