fix(ui): add filesystem fallback for embedded mode
Some checks failed
GBCI / build (push) Failing after 11s
Some checks failed
GBCI / build (push) Failing after 11s
This commit is contained in:
parent
22fa29b3ec
commit
497d0dd18c
1 changed files with 15 additions and 4 deletions
|
|
@ -14,7 +14,6 @@ use log::{debug, error, info};
|
||||||
#[cfg(feature = "embed-ui")]
|
#[cfg(feature = "embed-ui")]
|
||||||
use rust_embed::RustEmbed;
|
use rust_embed::RustEmbed;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
#[cfg(not(feature = "embed-ui"))]
|
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use tokio_tungstenite::{
|
use tokio_tungstenite::{
|
||||||
|
|
@ -201,9 +200,21 @@ pub async fn serve_suite() -> impl IntoResponse {
|
||||||
let raw_html_res = {
|
let raw_html_res = {
|
||||||
#[cfg(feature = "embed-ui")]
|
#[cfg(feature = "embed-ui")]
|
||||||
{
|
{
|
||||||
Assets::get("suite/index.html")
|
match Assets::get("suite/index.html") {
|
||||||
.map(|f| String::from_utf8(f.data.into_owned()).map_err(|e| e.to_string()))
|
Some(f) => String::from_utf8(f.data.into_owned()).map_err(|e| e.to_string()),
|
||||||
.unwrap_or(Err("Asset not found".to_string()))
|
None => {
|
||||||
|
let path = get_ui_root().join("suite/index.html");
|
||||||
|
log::warn!("Asset 'suite/index.html' not found in embedded binary, falling back to filesystem: {:?}", path);
|
||||||
|
fs::read_to_string(&path).map_err(|e| {
|
||||||
|
format!(
|
||||||
|
"Asset not found in binary AND failed to read {:?} (CWD: {:?}): {}",
|
||||||
|
path,
|
||||||
|
std::env::current_dir(),
|
||||||
|
e
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#[cfg(not(feature = "embed-ui"))]
|
#[cfg(not(feature = "embed-ui"))]
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue