在 Tauri 中,我正在为特定的桌面应用程序运行 HTTP 服务器,并在开发过程中通过从适当的位置加载相应的 HTML 文件来显示其内容。该 HTML 文件将在构建过程中被 Vite 放置在 dist 文件夹中。
问题是,如何在发布应用程序中引用这个文件?
我尝试了一些简单的方法,例如:
./../dist/index.client.html
,但没有成功。经过多次尝试,我开始在网上搜索,但只找到了与“资源”相关的解决方案。我以前没有真正使用过 Tauri 的这一部分。
如何从 Rust 访问发布应用程序中的
distDir
?
let is_release = env::var("APP_ENV").unwrap_or_else(|_| "development".to_string()) == "production";
if is_release {
let html_path = "../dist-client/index.html"; // here
match fs::read_to_string(html_path) {
Ok(html_content) => {
// Success
Ok::<_, warp::Rejection>(warp::reply::html(html_content))
}
Err(_) => {
let html_content = format!(r#"
<html>
<head><title>Error</title></head>
<body>
<h1>Index file not found...</h1>
<p>{}</p>
</body>
</html>
"#, html_path).to_string();
Ok::<_, warp::Rejection>(warp::reply::html(html_content))
}
}
}
发布版本中没有
dist
目录;资产嵌入到应用程序中 - 它们不存在于文件系统中。为了访问它们,您必须使用 .asset_resolver()
手柄上的
app
:
let file = app.asset_resolver().get("index.client.html".to_owned()).unwrap();
// use file.bytes