Inject <base> into pages managed via routes/index.js

Signed-off-by: James Ketrenos <james_gitlab@ketrenos.com>
This commit is contained in:
James Ketrenos 2020-02-17 16:41:51 -08:00
parent 6202b833f0
commit 821c10816a
3 changed files with 25 additions and 7 deletions

View File

@ -2,7 +2,7 @@
<head>
<meta charset="utf-8">
<link rel="icon" href="./frontend/icons-192.png" sizes="192x192">
<base href="/photos/">
<script>'<base href="BASEPATH">';</script>
<style>
body {
background-image: linear-gradient(#090B1A, #131524);

View File

@ -4,7 +4,9 @@
"description": "Self hosting photo",
"main": "server/app.js",
"scripts": {
"start": "node ./server/app.js",
"start": "npm server",
"start-devel": "concurrently \"npm:server\" \"npm:dev\"",
"server": "node ./server/app.js",
"faces": "node ./server/face-recognizer.js",
"dev": "webpack-dev-server --mode development --host 0.0.0.0 --config webpack.dev.js",
"build": "webpack --config webpack.prod.js",
@ -31,6 +33,7 @@
"body-parser": "^1.19.0",
"bootstrap": "^4.4.1",
"canvas": "^2.6.1",
"concurrently": "^5.1.0",
"config": "^3.2.4",
"connect-sqlite3": "^0.9.11",
"cookie-parser": "^1.4.4",

View File

@ -40,17 +40,32 @@ router.get("/*", function(req, res, next) {
return next();
}
if (req.url == "/" || !extensionMatch.exec(parts.pathname)) {
console.log("Returning index for " + req.url);
if (extensionMatch.exec(parts.pathname)) {
return res.status(404).send({
message: "File not found",
status: 404
});
}
let source;
switch (req.url) {
case "/":
source = "frontend/index.html";
break;
case "/identities":
source = "./index.html";
break;
}
if (source) {
console.log("Returning " + source + " for " + req.url);
/* Replace <script>'<base href="/BASEPATH/">';</script> in index.html with
* the basePath */
const index = fs.readFileSync("frontend/index.html", "utf8");
const index = fs.readFileSync(source, "utf8");
res.send(index.replace(
return res.send(index.replace(
/<script>'<base href="BASEPATH">';<\/script>/,
"<base href='" + basePath + "'>"));
return;
}
console.log("Page not found: " + req.url);