在Tauri Release应用程序中,如何访问distDir文件夹中的文件?

问题描述 投票:0回答:1

在 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))
        }
    }
}
rust vite tauri
1个回答
0
投票

发布版本中没有

dist
目录;资产嵌入到应用程序中 - 它们不存在于文件系统中。为了访问它们,您必须使用 .asset_resolver()
 手柄上的 
app

let file = app.asset_resolver().get("index.client.html".to_owned()).unwrap();
// use file.bytes
© www.soinside.com 2019 - 2024. All rights reserved.