Proxy subfolders
See original GitHub issueWe have a main domain http://domain.com/ which is serving up our main document.
We have added a proxy route (AWS ALB) to serve Raneto from https://domain.com/docs/
We have changed “base_url” to “/docs”, but nothing is served from there.
Logs show the following:
0|server | GET /docs/ 404 4.870 ms - 2180
0|server | GET /docs/lib/bootstrap/dist/css/bootstrap.min.css 304 2.712 ms - -
0|server | GET /docs/lib/highlightjs/styles/solarized_light.css 304 1.680 ms - -
0|server | GET /docs/styles/raneto.css 304 4.797 ms - -
0|server | GET /docs/styles/ghostdown.css 304 5.429 ms - -
0|server | GET /docs/lib/jquery/dist/jquery.min.js 304 8.428 ms - -
0|server | GET /docs/lib/bootstrap/dist/js/bootstrap.min.js 304 9.149 ms - -
0|server | GET /docs/lib/highlightjs/highlight.pack.min.js 304 9.042 ms - -
0|server | GET /docs/lib/fitvids/fitvids.min.js 304 8.891 ms - -
0|server | GET /docs/lib/masonry-layout/dist/masonry.pkgd.min.js 304 9.202 ms - -
0|server | GET /docs/scripts/ghostdown.js 304 7.922 ms - -
0|server | GET /docs/scripts/raneto.js 304 8.475 ms - -
We basically want the index of the knowledgebase to be served from “/docs/”, not from “/”. Is this possible without modifying the application code? The load balancer does not have the option to proxy relative paths, from my understanding.
The other alternative is to put another loadbalancer (nginx) on top of this to forward requests and alter the incoming path (from “/docs/" to "/”), but this is overkill in my opinion. We would possibly need to do a subdomain otherwise, which we’re not excited about.
Interested in hearing your ideas. Thanks!
Issue Analytics
- State:
- Created 6 years ago
- Comments:6 (4 by maintainers)
I have mostly fixed this by editing
app/index.js
and using the express-urlrewrite middleware: https://github.com/kapouer/express-urlrewriteAnd also moved public theme assets to
themes/default/public/docs
Here’s what I did:
npm install express-urlrewrite
rewrite_prefix: '/docs',
app/index.js
->var rewrite = require("express-urlrewrite");
app.use(rewrite(config.rewrite_prefix + '/*','/$1'));
This takes care of most of the static routes that our users will need. It appears, however, that the login features are now broken, and who knows about the editing capability.
If this is something you guys would like to iterate with me on, I can submit a PR. Or if there’s a better way, let me know… Thanks.
EDIT:
Fixed the style issues on the login page by adding config to the route:
There are still issues with static assets. I had to move
themes/default/public
tothemes/default/public/docs
to make that work, but the URLs are hard coded in the client side JS, so I’d have to change that too.Please see this branch/PR to address your issue and confirm/deny the fix. https://github.com/gilbitron/Raneto/pull/312