Bug Report: Absolute path on assets and links
lifehome opened this issue · 1 comments
Describe the bug
If the subspace instance is running behind a reverse proxy under a subdirectory, such as https://example.org/subspace/
, the application will attempt to source the static assets from https://example.org/static/...
instead of https://example.org/subspace/static/...
, links and buttons will also goes to the root directory(https://example.org/logout
) as well.
This is due to the hard coded absolute path inside the web templates, and can be rectified by prepending the SUBSPACE_BACKLINK
variable value back into the web template.
Note: The current "Subspace" text, which sits next to the home icon on the navigation bar, is a great example demonstrating the hard coded absolute path issue.
Proposed solution
Referencing to this line:
subspace/web/templates/header.html
Line 25 in 32fd13b
And also these lines with absolute path issues:
subspace/web/templates/header.html
Lines 8 to 18 in 32fd13b
It can be resolved by simply prepending the backlink template variable, for example
<link rel="icon" href="{{.Backlink}}/static/favicon.png?v={{$.Version}}">
<link rel="apple-touch-icon" href="{{.Backlink}}/static/favicon.png?v={{$.Version}}">
<title>Subspace</title>
<link rel="stylesheet" type="text/css" href="{{.Backlink}}/static/semantic/semantic.min.css?v={{$.Version}}">
<link rel="stylesheet" type="text/css" href="{{.Backlink}}/static/style.css?v={{$.Version}}">
<link rel="stylesheet" type="text/css" href="{{.Backlink}}/static/roboto.css?v={{$.Version}}">
<script src="{{.Backlink}}/static/jquery.min.js?v={{$.Version}}"></script>
<script src="{{.Backlink}}/static/semantic/semantic.min.js?v={{$.Version}}"></script>
To Reproduce
Steps to reproduce the behavior:
- Run a subspace instance
- Reverse proxy it behind nginx/swag/traefik/etc
- Browse the corresponding URL of the web server, which is a proxy to the subspace instance
- See the errors happen inside the browser console/inspector
Expected behavior
The assets and navigation links/buttons should be prepended with the backlink variable value.
Screenshots
Additional context
Sorry that I don't have time to make a PR at the very moment. However, if this issue isn't getting a fix within a week, I might squeeze some time to fix it.
Okey so I was going on making a PR but found that other than the template strings, the Golang files also redirects pages with absolute path... Gotta find a workaround for that.