21

このような静的ファイルのフォルダーを設定します

app.config['STATIC_FOLDER'] = 'tmp'

テンプレートでは、img タグを使用して、/tmp に保存されている画像を表示します。

<img src='IKE2low.jpg' width="200" height="85">

firebug では、画像ではなく 404 エラーが表示されます。私が何を間違えたのか教えてください。

前もって感謝します。

4

1 に答える 1

40

STATIC_FOLDER使用しているこの構成アイテムが何であるかわかりません。どこで見つけたの?

Flask静的ファイルの構成を制御するクラス コンストラクターには、実際には 2 つの引数があります。

  • static_folder : デフォルトは「静的」です。これは、静的ファイルにアクセスするために URL で使用する必要があるプレフィックスです。

  • static_url_path : これは、静的フォルダーのディスクの場所です。デフォルトでは、この値は static_folder 設定と同じです。

たとえば、次の構成を使用する場合:

from flask import Flask
app = Flask(__name__, static_url_path = "/tmp", static_folder = "tmp")

次に、次のように画像にアクセスできます。

<img src='/tmp/IKE2low.jpg' width="200" height="85">

次のように、URL にプレフィックスを含める必要をなくすこともできます。

from flask import Flask
app = Flask(__name__, static_url_path = "", static_folder = "tmp")

そして、次のように画像にアクセスできます。

<img src='/IKE2low.jpg' width="200" height="85">

root が必要であることに注意してください/

ただし、これを行う最善の方法は、画像パスを明示的に参照せず、代わりに を使用url_forして正しい URL を生成することです。Jinja2 テンプレートを使用している場合、次のようになります。

<img src="{{ url_for('static', filename = 'IKE2low.jpg') }}" width="200" height="85">

この最後の式は、静的ファイルがどこでどのように構成されているかに関係なく機能します。

于 2013-07-20T17:58:16.277 に答える