21

我为这样的静态文件设置文件夹

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

在模板中,我使用 img 标签来显示存储在 /tmp 中的图像:

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

在萤火虫中,我看到 404 错误而不是图像。请告诉我我做错了什么?

提前致谢。

4

1 回答 1

40

我不确定STATIC_FOLDER您使用的是什么配置项。你在哪里找到它?

Flask类构造函数实际上有两个参数来控制静态文件的配置:

  • 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 回答