让 Flask 显示不在静态目录中的图像

DeC*_*ees 6 python templates jinja2 flask

我正在尝试显示位于非默认静态文件夹的文件夹中的图像。

我的模板如下所示:

{% extends "layout.html" %}
{% block body %}
   Albums
   {% for album in albums %}
      <img src="{{ album ['ThumbPath'] }}">
   {% endfor %}
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

生成的 HTML 如下所示:

<!doctype html>
<title>iPhoto</title>
<link rel=stylesheet type=text/css href="/static/style.css">
<div class=page>
<h1>iPhoto</h1>  
<img src="/Users/Darrell/Pictures/iPhoto Library/Thumbnails/2013/08/09/20130809-180444/t264vvMaQM+GJosBP+4q+Q/_DSC1225.jpg">  
<img src="/Users/Darrell/Pictures/iPhoto Library/Thumbnails/2013/08/09/20130809-181030/urU3jqSKRgGNNP1MjKhpvg/_DSC1268.jpg">
<img src="/Users/Darrell/Pictures/iPhoto Library/Thumbnails/2013/08/09/20130809-181037/1zYyNYReRg+Sizx8v4BUkw/_DSC0923.jpg">  
<img src="/Users/Darrell/Pictures/iPhoto Library/Thumbnails/2013/08/09/20130809-181038/sKzEEB3jSf6GBs2heQIviA/Kelly.jpg">
</div>
Run Code Online (Sandbox Code Playgroud)

如何让图像呈现在生成的网页上。图片路径正确。无法将所有图像复制到静态文件夹。

达雷尔

tbi*_*icr 5

看起来你有文件系统路径而不是站点。当您启动资源时,/路径将从站点根目录开始(站点的绝对路径,不带斜杠或带有./or../是相对路径),例如,如果您有站点http://test.com,则/will behttp://test.com//testwill be http://test.com/test。您可以为其他站点设置具有特定协议的路径protocol://或与当前站点相同的路径//。您始终可以在浏览器错误控制台中发现错误(完整)网址的错误。

要访问文件系统,您必须使用file://协议,并且您的网址将类似于file:///Users/Darrell/Pictures/...。但它仅适用于您的计算机,并且可能存在安全问题。您还可以将此文件的符号链接设置为静态文件夹,这可以解决安全问题,但不能解决仅与您的计算机有关的问题。要彻底解决此问题,最好将此文件发布到您的应用程序或公共(私有)Web 服务器上以获取图像或其他静态信息。