如何解决BASE_URL后自动添加多余斜杠的问题
解决URL拼接出现双斜杠的问题
问题根源
你遇到的双斜杠问题,是因为self.thumbnail.url本身自带前导斜杠(比如/media/uploads/xxx.jpg),直接和无结尾斜杠的BASE_URL拼接时,两个斜杠叠加导致的;反之如果BASE_URL带结尾斜杠、thumbnail.url也带前导斜杠,同样会出现双斜杠。
修复方案
方案1:用urljoin自动处理(推荐)
Python的urllib.parse.urljoin是专门处理URL拼接的工具,会自动识别并处理两边的斜杠,生成规范的URL。
首先导入所需模块:
from urllib.parse import urljoin import os
然后修改你的函数属性代码:
return urljoin(os.environ['BASE_URL'], self.thumbnail.url)
方案2:手动清理冗余斜杠
手动去除BASE_URL的结尾斜杠和thumbnail.url的前导斜杠,再进行拼接:
base_url = os.environ['BASE_URL'].rstrip('/') thumbnail_path = self.thumbnail.url.lstrip('/') return f"{base_url}/{thumbnail_path}"
两种方法都能生成http://127.0.0.1:8000/media/uploads/xxx.jpg这类规范的URL,避免双斜杠问题。
内容的提问来源于stack exchange,提问作者Trọng Nhân
相关产品推荐
相关产品推荐

