烧瓶不服务图片

新手上路,请多包涵

我创建了一个小型 Flask 应用程序,目的是在我的本地机器上处理和呈现本地消费的数据。我的 Flask 应用程序处理子文件夹中的数据,然后打开网页显示处理后的数据。一切看起来都很棒,只是没有提供图像。例如,生成的 HTMl 源代码将类似于:

 <img src="/Users/username/Desktop/datafolder/pics/pic1.png" alt="pic1">

但是不会有图像。路径是正确的,所以我猜它与图像如何传递或不传递到 render_template 中的 Flask 有关。也许有一种方法可以指定媒体目录,正如我在这篇 Django 帖子 中看到的那样?

任何关于我如何能够包含图像的建议都将非常受欢迎。

最好的问候,zach cp

编辑:如答案和评论中所述,所有静态文件必须位于指定的静态目录中。我使用“file://”构造触发浏览器给出错误消息: "Not allowed to load local resource: file:///Users/username/Desktop/datafolder/pics/pic1.png" 这就是我看不到图像的原因。我可以使用下面的任何解决方案来生成我想要在指定静态文件夹中提供的图像。

原文由 zach 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 296
2 个回答

Flask 应用程序将它尝试提供静态文件的文件默认为应用程序根目录中的“静态”路径。因此,如果你运行你的程序……

C:\Users\username\Desktop\MyApp

静态文件夹将是

C:\Users\username\Desktop\MyApp\Static

因此,当试图服务

/Users/username/Desktop/datafolder/pics/pic1.png

Flask 将尝试提供的文件实际上是…

C:\Users\username\Desktop\MyApp\Static\Users\username\Desktop\datafolder\pics\pic1.png

这恐怕是不对的。

因此,您可以做几件事:

  1. 将正在处理的文件更改为运行 Flask 应用程序的“静态”文件夹,并使 HTML src 值相对于该目录

  2. Flask 构造 函数上设置 static_folder 参数。这允许您专门设置从何处提供静态文件。

    app = Flask(static_folder='C:\\Some\\Directory')

  1. 正如一些评论所建议的那样,更改为使用 file:// 类型。如果它不起作用,请发布您正在尝试的内容,因为它应该有效:)

原文由 Mark Hildreth 发布,翻译遵循 CC BY-SA 3.0 许可协议

好吧,你最好看看这个:http: //flask.pocoo.org/docs/quickstart/#static-files 你需要做什么:

 cd path/to/your/flask/app
mkdir static
mv /Users/username/Desktop/datafolder/pics/pic1.png /static

在您的模板中使用 <img src="/static/pic1.png" alt="pic1">

原文由 whtsky 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题