1. ホーム
  2. python

[解決済み] Flaskの静的ファイルへのurl_forによるリンク

2022-10-11 13:38:20

質問

の使い方は? url_for をどのように使えばいいのでしょうか? 例えば、私はいくつかの静的ファイルを 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 を生成するにはどうしたらよいでしょうか?

どのように解決するのですか?

デフォルトで static エンドポイント を静的ファイルのために使用します。また Flask アプリケーションは以下の引数を持ちます。

static_url_path : は、ウェブ上の静的ファイルのために別のパスを指定するために使うことができます。デフォルトは static_folder フォルダの名前になります。

static_folder : で提供されるべき静的ファイルのあるフォルダを指定します。 static_url_path . デフォルトは、アプリケーションのルートパスの 'static' フォルダーです。

という意味です。 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 ドキュメント .