Simplify the launch builder (#2967)
* improve documentation for the fullstack server context * Add a section about axum integration to the crate root docs * make serve_dioxus_application accept the cfg builder directly * remove unused server_fn module * improve fullstack config docs * improve documentation for the server function macro * fix axum router extension link * Fix doc tests * Fix launch builder * Simplify the launch builder * don't re-export launch in the prelude * refactor fullstack launch * Fix fullstack launch builder * Update static generation with the new builder api * fix some formatting/overly broad launch replacements * fix custom menu example * fix fullstack/static generation examples * Fix static generation launch * A few small formatting fixes * Fix a few doc tests * implement LaunchConfig for serve configs * fix fullstack launch with separate web and server launch methods * fix check with all features * dont expose inner core module * clippy and check * fix readme --------- Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
This commit is contained in:
1 parent
2d7bef44e8
commit
20d146d9bd
126 files changed
+618
-989
No files matched your search
@@ -4,7 +4,7 @@ use dioxus_router::prelude::*;
|
||||
use dioxus_ssr::renderer;
|
||||
use std::collections::HashSet;
|
||||
use std::fs;
|
||||
use std::path::Path;
|
||||
use std::path::{Path, PathBuf};
|
||||
|
||||
use crate::Config;
|
||||
|
||||
@@ -65,20 +65,24 @@ pub async fn generate_static_site(
|
||||
}
|
||||
|
||||
// Copy over the web output dir into the static output dir
|
||||
let assets_path = dioxus_cli_config::out_dir().unwrap_or("./dist".into());
|
||||
let out_path = dioxus_cli_config::out_dir().unwrap_or("./dist".into());
|
||||
|
||||
let assets_path = assets_path.join("public");
|
||||
let assets_path = out_path.join("public");
|
||||
|
||||
copy_static_files(&assets_path, &config.output_dir)?;
|
||||
let index_path = assets_path.join("index.html");
|
||||
let skip = vec![index_path.clone()];
|
||||
copy_static_files(&assets_path, &config.output_dir, &skip)?;
|
||||
|
||||
// Copy the output of the SSG build into the public directory so the CLI serves it
|
||||
copy_static_files(&config.output_dir, &assets_path, &[])?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn copy_static_files(src: &Path, dst: &Path) -> Result<(), std::io::Error> {
|
||||
let index_path = src.join("index.html");
|
||||
fn copy_static_files(src: &Path, dst: &Path, skip: &[PathBuf]) -> Result<(), std::io::Error> {
|
||||
let mut queue = vec![src.to_path_buf()];
|
||||
while let Some(path) = queue.pop() {
|
||||
if path == index_path {
|
||||
if skip.contains(&path) {
|
||||
continue;
|
||||
}
|
||||
if path.is_dir() {
|
||||
|
||||
Reference in new issue
Block a user