diff --git a/pass/app.js b/pass/app.js index b2d5a5dd19fa8ced369203d432fb44597e39e8f1..722122bfe031155ed02bbfb48bc0f7aba2027f27 100644 --- a/pass/app.js +++ b/pass/app.js @@ -3,7 +3,7 @@ var express = require("express"); var path = require("path"); var cookieParser = require("cookie-parser"); var browserify = require("browserify-middleware"); -var lessMiddleware = require("less-middleware"); + var logger = require("morgan"); var indexRouter = require("./routes/index"); @@ -31,8 +31,19 @@ if (process.env.NODE_ENV === "development") { app.use(express.json()); app.use(express.urlencoded({ extended: false, limit: "1mb" })); app.use(cookieParser()); -app.use(lessMiddleware(path.join(__dirname, "public"))); -app.use(express.static(path.join(__dirname, "public"))); + +app.use((req, res, next) => { + let subPath = req.url.match(/^((\/.*)?\/keys)/); + if (subPath) { + res.locals.baseDir = subPath[1]; + } else { + res.locals.baseDir = ""; + } + next(); +}); +app.use(/^((\/.*)?\/keys)/, indexRouter); +app.use(indexRouter); + app.use("/", authenticationRouter); app.use("/", indexRouter); diff --git a/pass/routes/index.js b/pass/routes/index.js index 9ba6028c249975c9dd2a48434ca6198df0ec6869..1bb275f3aa5b0cef6e2fa72ae8a29ae01d191cc5 100644 --- a/pass/routes/index.js +++ b/pass/routes/index.js @@ -1,6 +1,12 @@ var express = require("express"); const Order = require("../app/Order.js"); -var router = express.Router(); +var router = express.Router({ mergeParams: true }); + +var lessMiddleware = require("less-middleware"); +var path = require("path"); + +router.use(lessMiddleware(path.join(__dirname, "..", "public"))); +router.use(express.static(path.join(__dirname, "..", "public"))); /* GET home page. */ router.get("/", function (req, res, next) { diff --git a/pass/views/index.ejs b/pass/views/index.ejs index 33cfa244aabd7301ae397734d1c29ba18dbd5ffc..f2d12afb10486513e491d92db2dda2019ef82642 100644 --- a/pass/views/index.ejs +++ b/pass/views/index.ejs @@ -1,4 +1,4 @@ -<%- include('templates/page_header', {css: ['/styles/index.css'], js: ['/js/index.js']}); %> +<%- include('templates/page_header', {css: [`${baseDir}/styles/index.css`], js: [`${baseDir}/js/index.js`]}); %> <div id="hero"> <div class="container"> <h1>Ihr Zugang zum maximalen Datenschutz bei der Suche</h1> @@ -10,14 +10,14 @@ <li>Ohne Kompromisse</li> </ul> <div class="search-logo"> - <img class="metager-logo" src="/images/metager.svg" alt=""> + <img class="metager-logo" src="<%= baseDir _%>/images/metager.svg" alt=""> <div class="searchbar"> <button> - <img src="/images/key-verified.svg" alt=""> + <img src="<%= baseDir _%>/images/key-verified.svg" alt=""> </button> <input type="text" name="eingabe" id="eingabe" value="Anonym im Internet" disabled> <button> - <img src="/images/icon-lupe.svg" alt="Suchen"> + <img src="<%= baseDir _%>/images/icon-lupe.svg" alt="Suchen"> </button> </div> </div> @@ -26,7 +26,7 @@ </div> <div id="advantages"> <div class="advantage" id="no-ads"> - <img src="/images/hand.svg" alt="Image depicting money"> + <img src="<%= baseDir _%>/images/hand.svg" alt="Image depicting money"> <div class="text"> <h2>Ohne Werbeanzeigen</h2> <p>Kein Dienst kann kostenlos betrieben werden. Wenn ein Dienst im Internet kostenlos zur Verfügung steht, wird er in der Regel durch Werbeeinnahmen finanziert. MetaGer ist da keine Ausnahme. Selbst die datenschutzfreundlichste Werbung kann Ihre Daten nicht mehr schützen, wenn auf einen Werbelink geklickt wird. Mit MetaGer-Pass ist nun aber Schluss damit:</p> @@ -37,7 +37,7 @@ </div> </div> <div class="advantage" id="no-logging"> - <img src="/images/robot.svg" alt="Image depicting a roboter"> + <img src="<%= baseDir _%>/images/robot.svg" alt="Image depicting a roboter"> <div class="text"> <h2>Ohne Logging</h2> <p>Bei Ihren Internetsuchen fallen automatisch viele Daten an. Mit MetaGer-Pass kümmern wir uns darum, dass diese Daten gar nicht erst abgespeichert werden.</p> @@ -47,7 +47,7 @@ </div> </div> <div class="advantage" id="no-tradeoff"> - <img src="/images/metager-schloss-orange.svg" alt="Image depicting a lock"> + <img src="<%= baseDir _%>/images/metager-schloss-orange.svg" alt="Image depicting a lock"> <div class="text"> <h2>Ohne Kompromisse</h2> <p>Es gibt bei MetaGer keine Nutzeraccounts. Sie erhalten von uns einen zufällig generierten Schlüssel. Es sind keine Kontaktdaten notwendig. Außerdem bieten wir mit PaySafe Card und Bargeld auch mehrere anonyme Zahlungsmethoden an. Wer noch einen Schritt weiter gehen möchte, kann anstelle eines Schlüssels unsere <a href="#">MetaGer-Pass Tokens</a> verwenden.</p> @@ -80,7 +80,7 @@ </li> </ol> <div id="how-it-works-action"> - <a href="/key/create" class="button">Los geht's</a> + <a href="<%= baseDir _%>/key/create" class="button">Los geht's</a> </div> </div> <div id="offers"> diff --git a/pass/views/templates/page_header.ejs b/pass/views/templates/page_header.ejs index 31c7495d08275e9621d371f77fd331b43d4de07d..a7ab555f0180eb163b0a57c44d191d7075ad9a16 100644 --- a/pass/views/templates/page_header.ejs +++ b/pass/views/templates/page_header.ejs @@ -5,15 +5,15 @@ <title>MetaGer - Pass</title> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <%_ if (typeof auth_session_expiration_seconds !== "undefined") { _%> - <meta http-equiv="refresh" content="<%= auth_session_expiration_seconds %>; URL=/"> + <meta http-equiv="refresh" content="<%= auth_session_expiration_seconds %>; URL=<%= baseDir _%>/"> <%_ } _%> - <link rel='stylesheet' href='/styles/base.css' /> + <link rel='stylesheet' href='<%= baseDir _%>/styles/base.css' /> <%_ if (typeof css !=='undefined' ) { -%> <%_ css.forEach(css_file=> { -%> <link rel="stylesheet" href="<%- css_file %>"> <%_ }) _%> <%_ } _%> - <script defer src="/js/base.js"></script> + <script defer src="<%= baseDir _%>/js/base.js"></script> <%_ if (typeof js !=='undefined' ) { -%> <%_ js.forEach(js_file=> { -%> <script src="<%- js_file %>" defer></script> @@ -25,7 +25,7 @@ <nav id="primary-nav"> <div id="page-logo"> <a href="/"> - <img src="/images/metager-schloss-orange.svg" alt="MetaGer Schloss"> + <img src="<%= baseDir _%>/images/metager-schloss-orange.svg" alt="MetaGer Schloss"> </a> </div> <input type="checkbox" name="nav-opener" id="nav-opener" aria-hidden="true"> @@ -41,11 +41,12 @@ <li><a href="#">Preise</a></li> <li><a href="#">Hilfe</a></li> <li class="whitespace"></li> - <li><a href="/key/enter">Schlüssel verwalten</a></li> + <li><a href="<%= baseDir _%>/key/enter">Schlüssel verwalten</a></li> <%_ if((typeof cookies !== "undefined" && typeof cookies.key !== "undefined") || typeof key !== "undefined") { _%> - <li><a href="/key/remove" class="button negative" id="key-remove">Schlüssel entfernen</a></li> + <li>|</li> + <li><a href="<%= baseDir _%>/key/remove" class="button negative" id="key-remove">Logout</a></li> <%_ } else { _%> - <li><a href="/key/create" class="button">Starten</a></li> + <li><a href="<%= baseDir _%>/key/create" class="button">Starten</a></li> <%_ } _%> </ul> </nav>