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

标签 python templates flask jinja2

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

我的模板看起来像:

{% extends "layout.html" %}
{% block body %}
   Albums
   {% for album in albums %}
      <img src="{{ album ['ThumbPath'] }}">
   {% endfor %}
{% endblock %}

生成的 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>

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

达雷尔

最佳答案

看起来您有文件系统路径而不是站点。当您使用 / 启动资源时,路径将从站点根目录开始(站点的绝对路径,没有斜杠或 ./../是相对的)例如,如果您有网站 http://test.com 那么 / 将是 http://test.com//test 将是 http://test.com/test。您可以使用特定协议(protocol)设置路径 protocol:// 或与当前站点相同的 // 其他站点。您总是可以在浏览器错误控制台中找到带有错误(完整)URL 的错误。

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

关于python - 让 Flask 显示不在静态目录中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18368057/

相关文章:

python - 在本地提供 Jupyter 孵化器仪表板的最简单方法

python - Django:如何过滤和显示页面上类别的帖子

templates - Velocity 模板宏中的闭包

python - 装饰函数如何在 flask /python 中工作? (app.route)

python - 如果我不将文件分配给变量,文件会自动关闭吗?

继承类层次结构中的 C++ 虚拟变量

templates - elasticsearch-索引模板创建错误-解析异常,未知 key

flask - 中断 iPythonNotebook 中的 Flask 应用程序导致 ZMQerror

python - 快速入门 Flask 应用程序因某种原因失败

python - 如何让 Titan 图形数据库与 Python 一起工作?