diff --git a/mkdocs-website/docs/en/changelog.md b/mkdocs-website/docs/en/changelog.md index fa3a3f838..ade489210 100644 --- a/mkdocs-website/docs/en/changelog.md +++ b/mkdocs-website/docs/en/changelog.md @@ -43,6 +43,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fix failing Windows build due to unknown option by [thomas-senechal](https://github.com/thomas-senechal) in PR [#3208](https://github.com/wailsapp/wails/pull/3208) - Fix wrong baseURL when open window twice by @5aaee9 in PR [#3273](https://github.com/wailsapp/wails/pull/3273) - Fix ordering of if branches in `WebviewWindow.Restore` method by [@fbbdev](https://github.com/fbbdev) in [#3279](https://github.com/wailsapp/wails/pull/3279) +- Correctly compute `startURL` across multiple `GetStartURL` invocations when `FRONTEND_DEVSERVER_URL` is present. [#3299](https://github.com/wailsapp/wails/pull/3299) ### Changed diff --git a/v3/internal/assetserver/assetserver.go b/v3/internal/assetserver/assetserver.go index 0d80007e7..24b049224 100644 --- a/v3/internal/assetserver/assetserver.go +++ b/v3/internal/assetserver/assetserver.go @@ -148,26 +148,19 @@ func GetStartURL(userURL string) (string, error) { } port := parsedURL.Port() if port != "" { - baseURL.Host = net.JoinHostPort(baseURL.Host, port) + baseURL.Host = net.JoinHostPort(baseURL.Hostname(), port) startURL = baseURL.String() } - } else { - if userURL != "" { - // parse the url - parsedURL, err := url.Parse(userURL) - if err != nil { - return "", fmt.Errorf("Error parsing URL: " + err.Error()) - } - if parsedURL.Scheme == "" { - startURL = baseURL.ResolveReference(&url.URL{Path: userURL}).String() - // if the original URL had a trailing slash, add it back - if strings.HasSuffix(userURL, "/") && !strings.HasSuffix(startURL, "/") { - startURL = startURL + "/" - } - } else { - startURL = userURL - } - } } + + if userURL != "" { + parsedURL, err := baseURL.Parse(userURL) + if err != nil { + return "", fmt.Errorf("Error parsing URL: " + err.Error()) + } + + startURL = parsedURL.String() + } + return startURL, nil }