Fix base path on web and fullstack (#3247)
* Create a crate for constant serialization of config structs for manganis * use SerializeConst for the image asset builder * switch to a declarative macro for assets * clean up asset macro a bit * add serializable options for each asset type * serialize const vec * Add unique path formatting * implement the new manganis macro * optimize assets in the CLI * Fix clippy * Fix assets with dioxus formattable * reduce fuzzing test limits * use the new syntax in examples * fix formatting * Final doc and test pass on const-serialize * fix avif support * Fix manganis doc tests * cache asset optimization * Split out asset and bundled asset * make hash pointer width independent * remove const serialize cargo lock * Fix manganis macro docs * all tests passing * add constvec::is_empty method to fix clippy lint * remove nasm feature * simplify test_rsplit_once test so typos passes * fix range syntax for stable * revert example change from clippy fix * remove dioxus-static-site-generation workspace dependency * always accept unix paths * fix windows path seperator * fix folder asset hash * Optimize assets in a blocking task * Fix asset options docs * Document Asset and BundledAsset * move manganis back into it's own folder * simplify the linker macro a bit * add more docs to AssetParser expansion * fix manganis core doc test * add image format helpers * Fill in new cargo.tomls * fix folders with explicit options * Split by both unix and windows path separators and take the smallest one * fix string length * Fix base path on web and fullstack * Fix assets with base path * fix fullstack base route with trailing slash * fix clippy
This commit is contained in:
1 parent
1e8693a0e8
commit
3d62fbf021
20 files changed
+254
-41
No files matched your search
@@ -16,10 +16,11 @@ keywords = ["dom", "ui", "gui", "assets"]
|
||||
serde = { workspace = true, features = ["derive"] }
|
||||
const-serialize = { workspace = true, features = ["serde"] }
|
||||
dioxus-core-types = { workspace = true, optional = true }
|
||||
dioxus-cli-config = { workspace = true, optional = true }
|
||||
|
||||
[dev-dependencies]
|
||||
manganis = { workspace = true }
|
||||
dioxus = { workspace = true }
|
||||
|
||||
[features]
|
||||
dioxus = ["dep:dioxus-core-types"]
|
||||
dioxus = ["dep:dioxus-core-types", "dep:dioxus-cli-config"]
|
||||
@@ -124,8 +124,23 @@ impl Asset {
|
||||
return PathBuf::from(self.bundled.absolute_source_path.as_str());
|
||||
}
|
||||
|
||||
#[cfg(feature = "dioxus")]
|
||||
let bundle_root = {
|
||||
let base_path = dioxus_cli_config::base_path();
|
||||
let base_path = base_path
|
||||
.as_deref()
|
||||
.map(|base_path| {
|
||||
let trimmed = base_path.trim_matches('/');
|
||||
format!("/{trimmed}")
|
||||
})
|
||||
.unwrap_or_default();
|
||||
PathBuf::from(format!("{base_path}/assets/"))
|
||||
};
|
||||
#[cfg(not(feature = "dioxus"))]
|
||||
let bundle_root = PathBuf::from("/assets/");
|
||||
|
||||
// Otherwise presumably we're bundled and we can use the bundled path
|
||||
PathBuf::from("/assets/").join(PathBuf::from(
|
||||
bundle_root.join(PathBuf::from(
|
||||
self.bundled.bundled_path.as_str().trim_start_matches('/'),
|
||||
))
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user