Browse Source

use relative paths for html resources, to allow reverse proxying

pull/175/head
Henri 6 years ago
parent
commit
c32c4e5d26
  1. 15
      src/server/server.ts

15
src/server/server.ts

@ -29,7 +29,8 @@ export default function createServer(
const html = ( const html = (
req: express.Request, req: express.Request,
res: express.Response res: express.Response
): express.Response => ): express.Response => {
const resourcePath = /^\/ssh\//.test(req.url) ? '../' : '';
res.send(`<!doctype html> res.send(`<!doctype html>
<html lang="en"> <html lang="en">
<head> <head>
@ -37,7 +38,7 @@ export default function createServer(
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>WeTTy - The Web Terminal Emulator</title> <title>WeTTy - The Web Terminal Emulator</title>
<link rel="stylesheet" href="${basePath}/public/index.css" /> <link rel="stylesheet" href="${resourcePath}public/index.css" />
</head> </head>
<body> <body>
<div id="overlay"> <div id="overlay">
@ -47,9 +48,10 @@ export default function createServer(
</div> </div>
</div> </div>
<div id="terminal"></div> <div id="terminal"></div>
<script src="${basePath}/public/index.js"></script> <script src="${resourcePath}public/index.js"></script>
</body> </body>
</html>`); </html>`);
}
const app = express(); const app = express();
app app
@ -59,12 +61,7 @@ export default function createServer(
.use(favicon(path.join(distDir, 'favicon.ico'))) .use(favicon(path.join(distDir, 'favicon.ico')))
.use(`${basePath}/public`, express.static(distDir)) .use(`${basePath}/public`, express.static(distDir))
.use((req, res, next) => { .use((req, res, next) => {
if ( if (req.url === basePath) res.redirect(301, req.url + '/');
req.url.substr(-1) === '/' &&
req.url.length > 1 &&
!/\?[^]*\//.test(req.url)
)
res.redirect(301, req.url.slice(0, -1));
else next(); else next();
}) })
.get(basePath, html) .get(basePath, html)

Loading…
Cancel
Save