1. ホーム
  2. url

URLのパスをpath.Join()で結合する

2023-09-08 19:22:50

質問

を使用してファイルパスと同じように URL パスを結合する方法はありますか? path.Join() ?

例えば、以下を参照してください。 絶対パスと相対パスを結合して新しい絶対パスを得る .

を使う場合 path.Join("http://foo", "bar") を使うと http:/foo/bar .

でご覧ください。 Golang プレイグラウンド .

どのように解決するのですか?

関数path.Joinは、URLではなく、パスを想定しています。URLを解析してパスを取得し、そのパスで結合します。

u, err := url.Parse("http://foo")
u.Path = path.Join(u.Path, "bar.html")
s := u.String() // prints http://foo/bar.html

プレイグラウンドの例

パス以上のもの(例えばスキームやホスト)を組み合わせている場合、あるいは文字列がパス以上のもの(例えばクエリ文字列を含む)である場合は ResolveReference .