restore fallback for compressed version

This commit is contained in:
Greg Johnston 2024-06-28 15:28:03 -04:00
parent a2d8fde8cf
commit 64fc6cd514
3 changed files with 8 additions and 12 deletions

View file

@ -1,11 +1,8 @@
use crate::error_template::error_template;
use axum::{
body::Body,
extract::State,
http::{header, Request, Response, StatusCode, Uri},
response::{IntoResponse, Response as AxumResponse},
};
use leptos::LeptosOptions;
use std::borrow::Cow;
#[cfg(not(debug_assertions))]
@ -20,7 +17,6 @@ struct Assets;
pub async fn file_and_error_handler(
uri: Uri,
State(options): State<LeptosOptions>,
req: Request<Body>,
) -> AxumResponse {
let accept_encoding = req
@ -34,11 +30,7 @@ pub async fn file_and_error_handler(
if res.status() == StatusCode::OK {
res.into_response()
} else {
let handler =
leptos_axum::render_app_to_stream(options.to_owned(), || {
error_template(None)
});
handler(req).await.into_response()
(StatusCode::NOT_FOUND, "Not found.").into_response()
}
}

View file

@ -7,6 +7,8 @@ use leptos_router::{
ParamSegment, StaticSegment,
};
use routes::{nav::*, stories::*, story::*, users::*};
#[cfg(feature = "ssr")]
pub mod fallback;
pub fn shell(options: LeptosOptions) -> impl IntoView {
view! {

View file

@ -25,14 +25,16 @@ async fn main() {
// build our application with a route
let app = Router::new()
.route("/favicon.ico", get(file_and_error_handler))
.leptos_routes(&leptos_options, routes, App)
.leptos_routes(&leptos_options, routes, {
let leptos_options = leptos_options.clone();
move || shell(leptos_options.clone())
})
.layer(
CompressionLayer::new()
.quality(CompressionLevel::Fastest)
.compress_when(predicate),
)
.fallback(file_and_error_handler)
.fallback(fallback::file_and_error_handler)
.with_state(leptos_options);
// run our app with hyper