diff --git a/src/config/dotenvs.rs b/src/config/dotenvs.rs index c969238e..bd1f18f7 100644 --- a/src/config/dotenvs.rs +++ b/src/config/dotenvs.rs @@ -41,6 +41,7 @@ fn overlay(conf: &mut ProjectConfig, envs: impl Iterator conf.site_pkg_dir = Utf8PathBuf::from(val), "LEPTOS_STYLE_FILE" => conf.style_file = Some(Utf8PathBuf::from(val)), "LEPTOS_ASSETS_DIR" => conf.assets_dir = Some(Utf8PathBuf::from(val)), + "LEPTOS_SITE_BASE" => conf.site_base = Utf8PathBuf::from(val), "LEPTOS_SITE_ADDR" => conf.site_addr = val.parse()?, "LEPTOS_RELOAD_PORT" => conf.reload_port = val.parse()?, "LEPTOS_END2END_CMD" => conf.end2end_cmd = Some(val), diff --git a/src/config/project.rs b/src/config/project.rs index 0a6df656..7331549e 100644 --- a/src/config/project.rs +++ b/src/config/project.rs @@ -171,6 +171,7 @@ impl Project { ("LEPTOS_OUTPUT_NAME", self.lib.output_name.to_string()), ("LEPTOS_SITE_ROOT", self.site.root_dir.to_string()), ("LEPTOS_SITE_PKG_DIR", self.site.pkg_dir.to_string()), + ("LEPTOS_SITE_BASE", self.site.base.to_string()), ("LEPTOS_SITE_ADDR", self.site.addr.to_string()), ("LEPTOS_RELOAD_PORT", self.site.reload.port().to_string()), ("LEPTOS_LIB_DIR", self.lib.rel_dir.to_string()), @@ -238,6 +239,8 @@ impl Project { pub struct ProjectConfig { #[serde(default)] pub output_name: String, + #[serde(default)] + pub site_base: Utf8PathBuf, #[serde(default = "default_site_addr")] pub site_addr: SocketAddr, #[serde(default = "default_site_root")] diff --git a/src/service/site.rs b/src/service/site.rs index 6c53cf2b..4f95c1b7 100644 --- a/src/service/site.rs +++ b/src/service/site.rs @@ -72,6 +72,7 @@ impl std::fmt::Debug for SiteFile { } pub struct Site { + pub base: Utf8PathBuf, pub addr: SocketAddr, pub reload: SocketAddr, pub root_dir: Utf8PathBuf, @@ -83,6 +84,7 @@ pub struct Site { impl fmt::Debug for Site { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { f.debug_struct("Site") + .field("base", &self.base) .field("addr", &self.addr) .field("reload", &self.reload) .field("root_dir", &self.root_dir) @@ -98,6 +100,7 @@ impl Site { let mut reload = config.site_addr; reload.set_port(config.reload_port); Self { + base: config.site_base.clone(), addr: config.site_addr, reload, root_dir: config.site_root.clone(),