我为这样的静态文件设置了文件夹
app.config['STATIC_FOLDER'] = 'tmp'
在模板中,我使用img标签显示存储在/ tmp:
中的图像<img src='IKE2low.jpg' width="200" height="85">
在萤火虫中我看到404错误而不是图像。请告诉我,我做错了什么?
提前致谢。
答案 0 :(得分:30)
我不确定您使用的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">
请注意,您仍需要拥有根/
。
但最好的方法是不要明确引用图像路径,而是使用url_for
生成正确的URL。如果您使用的是Jinja2模板:
<img src="{{ url_for('static', filename = 'IKE2low.jpg') }}" width="200" height="85">
无论静态文件的配置位置和方式如何,最后一个表达式都能正常工作。