Fix templates with asset paths that point to external URL
Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>
This commit is contained in:
parent
1d892c6cac
commit
70505b258d
2 changed files with 12 additions and 0 deletions
|
@ -176,6 +176,11 @@ func loadTemplates(c webConfig, templatesDir string) (*templates, error) {
|
||||||
//assetPath is static/main.css
|
//assetPath is static/main.css
|
||||||
//relativeURL("/dex", "/dex/auth", "static/main.css") = "../static/main.css"
|
//relativeURL("/dex", "/dex/auth", "static/main.css") = "../static/main.css"
|
||||||
func relativeURL(serverPath, reqPath, assetPath string) string {
|
func relativeURL(serverPath, reqPath, assetPath string) string {
|
||||||
|
if u, err := url.ParseRequestURI(assetPath); err == nil && u.Scheme != "" {
|
||||||
|
// assetPath points to the external URL, no changes needed
|
||||||
|
return assetPath
|
||||||
|
}
|
||||||
|
|
||||||
splitPath := func(p string) []string {
|
splitPath := func(p string) []string {
|
||||||
res := []string{}
|
res := []string{}
|
||||||
parts := strings.Split(path.Clean(p), "/")
|
parts := strings.Split(path.Clean(p), "/")
|
||||||
|
|
|
@ -31,6 +31,13 @@ func TestRelativeURL(t *testing.T) {
|
||||||
assetPath: "assets/css/main.css",
|
assetPath: "assets/css/main.css",
|
||||||
expected: "../assets/css/main.css",
|
expected: "../assets/css/main.css",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "external-url",
|
||||||
|
serverPath: "/dex",
|
||||||
|
reqPath: "/dex/auth/connector",
|
||||||
|
assetPath: "https://kubernetes.io/images/favicon.png",
|
||||||
|
expected: "https://kubernetes.io/images/favicon.png",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, test := range tests {
|
for _, test := range tests {
|
||||||
|
|
Reference in a new issue