我正在尝试显示位于不是默认静态文件夹的文件夹中的图像。
我的模板看起来像:
{% 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/