flask - 为什么图像的url与其实际路径不一致?

时间:2016-05-19 09:13:32

标签: python flask

我正在使用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,浏览器会返回错误。

2 个答案:

答案 0 :(得分:0)

因为您应该将url_for图像的完整路径 relative 提供给静态文件夹。 所以我认为在你的情况下它会是

url_for('静态',文件名=' img / test.jpg')

url_for只会将您提供的路径连接到静态文件夹路径,因此要生成该文件的URI,但它不会神奇地映射或猜测文件的位置。

答案 1 :(得分:0)

因为您已经告诉它打印" test.jpg"内部"静态"。由于您没有包含对" img"的任何引用,因此url_for无法包含它。

请注意,这与您从函数返回的实际URL无关。