我正在尝试通过 3 个步骤构建一个复合 url,但结果是错误的!
// 1)
let baseURL = URL(string: "http://clapps.clappsa.com")!
print(baseURL.absoluteString)
// http://clapps.clappsa.com
// 2)
let extendedURL = baseURL.appendingPathComponent("public", isDirectory: true)
print(extendedURL.absoluteString)
// http://clapps.clappsa.com/public/
// 3)
let finalURL = URL(string: "/img/3-mentee.jpg", relativeTo: extendedURL)!
print(finalURL.absoluteString)
// http://clapps.clappsa.com/img/3-mentee.jpg
预期成果:
http://clapps.clappsa.com/public/img/3-mentee.jpg
即使我尝试像这样使用extendedURL
absoluteURL
:
let finalURL = URL(string: "/img/3-mentee.jpg", relativeTo: extendedURL.absoluteURL)!
print(finalURL.absoluteString)
// http://clapps.clappsa.com/img/3-mentee.jpg
我会得到同样的结果。
奇怪,但这种方法适用于其他一些不同的 URL。
您应该删除第一个/
以获得预期的结果:
let finalURL = URL(string: "img/3-mentee.jpg", relativeTo: extendedURL)!
print(finalURL.absoluteString) // http://clapps.clappsa.com/public/img/3-mentee.jpg
可以在此处找到更详细的解释。