From 97901937ffc7febb7aaea9df529717ce3f3e3a88 Mon Sep 17 00:00:00 2001 From: Stefan Melmuk Date: Fri, 2 Dec 2022 17:58:27 +0100 Subject: [PATCH] use a custom 404 page to customize the 404 page you can copy the handlebar template `src/static/templates/404.hbs` to the TEMPLATES_FOLDER (defaults to `data/templates/`) --- resources/404.svg | 313 +++++++++++++++++++++++++++++++++++ src/api/web.rs | 15 +- src/config.rs | 2 + src/static/images/404.png | Bin 0 -> 43146 bytes src/static/templates/404.hbs | 65 ++++++++ 5 files changed, 390 insertions(+), 5 deletions(-) create mode 100644 resources/404.svg create mode 100644 src/static/images/404.png create mode 100644 src/static/templates/404.hbs diff --git a/resources/404.svg b/resources/404.svg new file mode 100644 index 0000000000..950625ac21 --- /dev/null +++ b/resources/404.svg @@ -0,0 +1,313 @@ + + + +aultwardenPage not found!?Return to the web vault? diff --git a/src/api/web.rs b/src/api/web.rs index cfc4b9e0aa..41c9b55c20 100644 --- a/src/api/web.rs +++ b/src/api/web.rs @@ -1,11 +1,10 @@ use std::path::{Path, PathBuf}; -use rocket::serde::json::Json; -use rocket::{fs::NamedFile, http::ContentType, Catcher, Route}; +use rocket::{fs::NamedFile, http::ContentType, response::content::RawHtml as Html, serde::json::Json, Catcher, Route}; use serde_json::Value; use crate::{ - api::core::now, + api::{core::now, ApiResult}, error::Error, util::{Cached, SafeString}, CONFIG, @@ -30,8 +29,13 @@ pub fn catchers() -> Vec { } #[catch(404)] -async fn not_found() -> Cached> { - Cached::short(NamedFile::open(Path::new(&CONFIG.web_vault_folder()).join("404.html")).await.ok(), false) +fn not_found() -> ApiResult> { + // Return the page + let json = json!({ + "urlpath": CONFIG.domain_path() + }); + let text = CONFIG.render_template("404", &json)?; + Ok(Html(text)) } #[get("/")] @@ -91,6 +95,7 @@ fn alive(_conn: DbConn) -> Json { #[get("/vw_static/")] pub fn static_files(filename: String) -> Result<(ContentType, &'static [u8]), Error> { match filename.as_ref() { + "404.png" => Ok((ContentType::PNG, include_bytes!("../static/images/404.png"))), "mail-github.png" => Ok((ContentType::PNG, include_bytes!("../static/images/mail-github.png"))), "logo-gray.png" => Ok((ContentType::PNG, include_bytes!("../static/images/logo-gray.png"))), "error-x.svg" => Ok((ContentType::SVG, include_bytes!("../static/images/error-x.svg"))), diff --git a/src/config.rs b/src/config.rs index fe98d2df35..4994e73f87 100644 --- a/src/config.rs +++ b/src/config.rs @@ -1123,6 +1123,8 @@ where reg!("admin/organizations"); reg!("admin/diagnostics"); + reg!("404"); + // And then load user templates to overwrite the defaults // Use .hbs extension for the files // Templates get registered with their relative name diff --git a/src/static/images/404.png b/src/static/images/404.png new file mode 100644 index 0000000000000000000000000000000000000000..1a4b1a6efdb46bdc2cc4cd0041751ffa04e3f2bb GIT binary patch literal 43146 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
+%8Gsd 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 F{{a;_kpKVy literal 0 HcmV?d00001 diff --git a/src/static/templates/404.hbs b/src/static/templates/404.hbs new file mode 100644 index 0000000000..41ef1c0905 --- /dev/null +++ b/src/static/templates/404.hbs @@ -0,0 +1,65 @@ + + + + + + + + Page not found! + + + + + + + + +
+

Page not found!

+

Sorry, but the page you were looking for could not be found.

+

+ +

+

+ You can return to the web-vault, or contact us. +

+
+ + + +