diff --git a/server/routes/basepath.js b/server/routes/basepath.js new file mode 100644 index 0000000..96e9829 --- /dev/null +++ b/server/routes/basepath.js @@ -0,0 +1,33 @@ +"use strict"; + +const express = require("express"), + fs = require("fs"), + url = require("url"); + +const router = express.Router(); + +/* This router only handles HTML files and is used + * to replace BASEPATH */ +router.get("/*", function(req, res, next) { + const parts = url.parse(req.url), + basePath = req.app.get("basePath"); + + if (!/\/[^/]+\.html$/.exec(parts.pathname)) { + return next(); + } + + console.log("Attempting to parse 'frontend" + parts.pathname + "'"); + + /* Replace in index.html with + * the basePath */ + fs.readFile("frontend" + parts.pathname, "utf8", function(error, content) { + if (error) { + return next(); + } + res.send(content.replace( + /