Serve files in assets/

This commit is contained in:
Ethan Girouard 2024-03-31 13:08:48 -04:00
parent 1c9dc4bbe9
commit db0d2c6cb9
Signed by: eta357
GPG Key ID: 7BCDC36DFD11C146
2 changed files with 4 additions and 3 deletions

View File

@ -25,7 +25,7 @@ cfg_if! { if #[cfg(feature = "ssr")] {
} }
} }
async fn get_static_file(uri: Uri, root: &str) -> Result<Response<Body>, (StatusCode, String)> { pub async fn get_static_file(uri: Uri, root: &str) -> Result<Response<Body>, (StatusCode, String)> {
let req = Request::builder().uri(uri.clone()).body(Body::empty()).unwrap(); let req = Request::builder().uri(uri.clone()).body(Body::empty()).unwrap();
// `ServeDir` implements `tower::Service` so we can call it with `tower::ServiceExt::oneshot` // `ServeDir` implements `tower::Service` so we can call it with `tower::ServiceExt::oneshot`
// This path is relative to the cargo root // This path is relative to the cargo root

View File

@ -14,11 +14,11 @@ extern crate diesel_migrations;
#[cfg(feature = "ssr")] #[cfg(feature = "ssr")]
#[tokio::main] #[tokio::main]
async fn main() { async fn main() {
use axum::{routing::post, Router}; use axum::{routing::{post, get}, Router};
use leptos::*; use leptos::*;
use leptos_axum::{generate_route_list, LeptosRoutes}; use leptos_axum::{generate_route_list, LeptosRoutes};
use libretunes::app::*; use libretunes::app::*;
use libretunes::fileserv::file_and_error_handler; use libretunes::fileserv::{file_and_error_handler, get_static_file};
use dotenv::dotenv; use dotenv::dotenv;
dotenv().ok(); dotenv().ok();
@ -37,6 +37,7 @@ async fn main() {
let app = Router::new() let app = Router::new()
.route("/api/*fn_name", post(leptos_axum::handle_server_fns)) .route("/api/*fn_name", post(leptos_axum::handle_server_fns))
.leptos_routes(&leptos_options, routes, App) .leptos_routes(&leptos_options, routes, App)
.route("/assets/*uri", get(|uri| get_static_file(uri, "")))
.fallback(file_and_error_handler) .fallback(file_and_error_handler)
.with_state(leptos_options); .with_state(leptos_options);