mirror of
https://github.com/wailsapp/wails.git
synced 2025-05-03 21:30:39 +08:00

Support multi-language default. Remove default page from production builds. Improve defaultindex.html.
42 lines
979 B
Go
42 lines
979 B
Go
//go:build !production
|
|
|
|
package assetserver
|
|
|
|
import (
|
|
_ "embed"
|
|
"io/fs"
|
|
"net/http"
|
|
"net/http/httputil"
|
|
"net/url"
|
|
"os"
|
|
)
|
|
|
|
func NewAssetFileServer(vfs fs.FS) http.Handler {
|
|
devServerURL := GetDevServerURL()
|
|
if devServerURL == "" {
|
|
return newAssetFileServerFS(vfs)
|
|
}
|
|
|
|
parsedURL, err := url.Parse(devServerURL)
|
|
if err != nil {
|
|
return http.HandlerFunc(
|
|
func(rw http.ResponseWriter, req *http.Request) {
|
|
logError(req.Context(), "[ExternalAssetHandler] Invalid FRONTEND_DEVSERVER_URL. Should be valid URL", "error", err.Error())
|
|
http.Error(rw, err.Error(), http.StatusInternalServerError)
|
|
})
|
|
|
|
}
|
|
|
|
proxy := httputil.NewSingleHostReverseProxy(parsedURL)
|
|
proxy.ErrorHandler = func(rw http.ResponseWriter, r *http.Request, err error) {
|
|
logError(r.Context(), "[ExternalAssetHandler] Proxy error", "error", err.Error())
|
|
rw.WriteHeader(http.StatusBadGateway)
|
|
}
|
|
|
|
return proxy
|
|
}
|
|
|
|
func GetDevServerURL() string {
|
|
return os.Getenv("FRONTEND_DEVSERVER_URL")
|
|
}
|