为什么图像的url与其实际路径不相同?

2024-03-29 14:34:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用flask.send_file向我的客户机发送图像。你知道吗

但是,当我尝试使用url_for获取图像的url时,我发现返回的结果与图像的路径不一样。你知道吗

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

为什么url不是/static/img/test.jpg?你知道吗

编辑

当我从浏览器请求时,上面的代码运行良好。相反,如果我将文件名更改为static/test.jpg,浏览器将返回错误。你知道吗


Tags: test图像路径sendurlflaskimgfor
2条回答

因为你告诉它要打印“的URL”测试.jpg内部“静态”。因为你还没有包括任何对“img”的引用,所以url\u不可能包含它。你知道吗

请注意,这与从函数返回的实际URL无关。你知道吗

因为您应该给url_for图像的完整路径相对于静态文件夹。 所以我想在你的情况下

url\u for('static',filename='img/测试.jpg')

url\u for只会将您提供给它的路径连接到静态文件夹路径,以便生成该文件的URI,但它不会神奇地映射或猜测文件的位置。你知道吗

相关问题 更多 >