例如,我想将前缀路径加入到/js/foo.js 等资源路径中。
我希望生成的路径相对于服务器的根目录。在上面的示例中,如果前缀是“媒体”,我希望结果是/media/js/foo.js。
os.path.join 做得很好,但它如何连接路径取决于操作系统。在这种情况下,我知道我的目标是 Web,而不是本地文件系统。
当您使用知道将在 URL 中使用的路径时,是否有最佳选择? os.path.join 会足够好用吗?我应该自己滚动吗?
最佳答案
您可以使用 urllib.parse.urljoin
:
>>> from urllib.parse import urljoin
>>> urljoin('/media/path/', 'js/foo.js')
'/media/path/js/foo.js'
但要小心:
>>> urljoin('/media/path', 'js/foo.js')
'/media/js/foo.js'
>>> urljoin('/media/path', '/js/foo.js')
'/js/foo.js'
您从 /js/foo.js
和 js/foo.js
得到不同结果的原因是前者以斜线开头,表示它已经开始在网站根目录。
在 Python 2 上,您必须这样做
from urlparse import urljoin
关于python - 在 Python 中构建 URL 时如何连接路径的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1793261/