diff --git a/src/fileserv.rs b/src/fileserv.rs index e266d2c..b9bebf8 100644 --- a/src/fileserv.rs +++ b/src/fileserv.rs @@ -25,7 +25,7 @@ cfg_if! { if #[cfg(feature = "ssr")] { } } - async fn get_static_file(uri: Uri, root: &str) -> Result, (StatusCode, String)> { + pub async fn get_static_file(uri: Uri, root: &str) -> Result, (StatusCode, String)> { let req = Request::builder().uri(uri.clone()).body(Body::empty()).unwrap(); // `ServeDir` implements `tower::Service` so we can call it with `tower::ServiceExt::oneshot` // This path is relative to the cargo root diff --git a/src/main.rs b/src/main.rs index f7b99da..641e4c3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,11 +14,11 @@ extern crate diesel_migrations; #[cfg(feature = "ssr")] #[tokio::main] async fn main() { - use axum::{routing::post, Router}; + use axum::{routing::{post, get}, Router}; use leptos::*; use leptos_axum::{generate_route_list, LeptosRoutes}; use libretunes::app::*; - use libretunes::fileserv::file_and_error_handler; + use libretunes::fileserv::{file_and_error_handler, get_static_file}; use dotenv::dotenv; dotenv().ok(); @@ -37,6 +37,7 @@ async fn main() { let app = Router::new() .route("/api/*fn_name", post(leptos_axum::handle_server_fns)) .leptos_routes(&leptos_options, routes, App) + .route("/assets/*uri", get(|uri| get_static_file(uri, ""))) .fallback(file_and_error_handler) .with_state(leptos_options);