当前位置: 首页 > 面试题库 >

无法在Flask模板中显示来自STATIC_FOLDER的图像

程磊
2023-03-14
问题内容

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

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

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

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

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

提前致谢。


问题答案:

我不确定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">

无论静态文件的位置和配置方式如何,此最后一个表达式都将起作用。



 类似资料:
  • 在尝试了“php artisan存储:链接”等解决方案后,图像仍然无法在前端(vuejs)中显示。 图像本身存储在“storage/public/app/xxx.png”中 vuejs中的代码是。 我试图通过浏览器访问图像”http://127.0.0.1:80/api/storage/xxx.png,但导致“未找到” 任何线索都将不胜感激。

  • 问题内容: 我正在寻找如何在Flask模板中输出当前年份。我知道你可以在Django中使用.,但是有Flask等效项吗?到目前为止,我一直无法找到任何东西。 问题答案: 使用模板上下文处理器将当前日期传递给每个模板,然后呈现其year属性。 render如果大多数模板中不需要它,也可以将其与一起传递。

  • 问题内容: 嗨,我的数据库中有一个图像表。这些与细节一起存储为Blob,例如图像类型和名称。 我在显示图像时遇到问题,我得到的只是一个带有红色十字的白框。码: 谢谢 问题答案: 好吧,这是一个简短的答案。 检查您的Blob类型是否至少为MEDIUMBLOB,它能够存储高达16M的数据

  • 因此,我有一段html,其中包括一个mat表单字段,该字段有一个mat select和一个mat选项。这些mat选项是从服务器生成的,它们有一个图像,当选择一个选项时,我需要在mat select中显示该图像(每个选项都有自己的图像) 每次选择新选项时,我都要在mat select中显示选项标签和图像。 我读过mat select触发器,但对我来说没有任何效果。

  • 我想实现以下功能: 例如: 当用户从JComboBox中选择“Profile Pic”项时,“Profile Pic”文件夹中的相关图像应加载在同一帧中 同样,当用户选择“产品Img”项目时,应加载“产品Img”文件夹中的相关图像,以替换以前的图像 以下是代码片段,请建议任何更改