我像这样设置静态文件的文件夹
app.config['STATIC_FOLDER'] = 'tmp'
在模板中,我使用img标签显示存储在/ tmp中的图像:
<img src='IKE2low.jpg' width="200" height="85">
在firebug中,我看到404错误而不是图像。请告诉我我做错了什么?
提前致谢。
我不确定STATIC_FOLDER你正在使用什么配置项目。你在哪里找到它?
STATIC_FOLDER
实际上,Flask类构造函数有两个参数来控制静态文件的配置:
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">
无论静态文件的位置和配置方式如何,此最后一个表达式都将起作用。