我正在使用flask.send_file
将图片发送给我的客户。
但是,当我尝试使用url_for
获取图像的网址时,我发现返回的结果与图片的路径不同。
def get(self):
print url_for('static', filename='test.jpg')
filename = 'static/img/test.jpg'
return send_file(filename)
我得到了
/static/test.jpg
在控制台中。
文件结构是
└── static
└── img
└── test.jpg
为什么网址不是 /static/img/test.jpg
?
当我从浏览器请求时,上面的代码运行良好。相反,如果我将文件名更改为static/test.jpg
,浏览器会返回错误。
答案 0 :(得分:0)
因为您应该将url_for
图像的完整路径 relative 提供给静态文件夹。
所以我认为在你的情况下它会是
url_for('静态',文件名=' img / test.jpg')
url_for只会将您提供的路径连接到静态文件夹路径,因此要生成该文件的URI,但它不会神奇地映射或猜测文件的位置。
答案 1 :(得分:0)
因为您已经告诉它打印" test.jpg"内部"静态"。由于您没有包含对" img"的任何引用,因此url_for无法包含它。
请注意,这与您从函数返回的实际URL无关。