This commit is contained in:
2026-01-12 15:59:12 +11:00
parent f1c961d63e
commit ef445e91bc

View File

@@ -340,11 +340,10 @@ func buildDiagramsNetURL(r *http.Request, id string, xml string) string {
} }
base := fmt.Sprintf("%s://%s/diagram?id=%s", scheme, r.Host, url.QueryEscape(id)) base := fmt.Sprintf("%s://%s/diagram?id=%s", scheme, r.Host, url.QueryEscape(id))
// Request AWS library for custom shapes (e.g., aws4) to render correctly. // Request AWS library for custom shapes (e.g., aws4) to render correctly.
// Provide both query param (url=) and fragment (#U) so different draw.io deployments can fetch the diagram. // Provide only the fragment (#U) with an encoded URL because some self-hosted builds only read that token.
// Use encoded form for the query parameter, but keep the fragment raw; some self-hosted builds expect #U followed by // Keeping it encoded avoids header bloat and keeps characters safe inside the fragment.
// an unescaped URL. encoded := url.QueryEscape(base)
encodedURL := url.QueryEscape(base) redirect := fmt.Sprintf("%s/?splash=0&ui=min&libs=aws4#U%s", drawioBaseURL, encoded)
redirect := fmt.Sprintf("%s/?splash=0&ui=min&libs=aws4&url=%s#U%s", drawioBaseURL, encodedURL, base)
_ = xml // kept for signature compatibility; may be used in future fallbacks _ = xml // kept for signature compatibility; may be used in future fallbacks
return redirect return redirect
} }