アプリ実行時に必要な静的ファイル(画像、設定ファイルのテンプレート、データベースファイルなど)をインストーラーに同梱し、実行時にアクセスする方法を解説します。
Frontend の dist/ に含めるのではなく、Rust 側からパス解決を行いたい場合に有効です。
設定 (tauri.conf.json)
bundle -> resources にファイルまたはディレクトリパスを指定します。
{
"bundle": {
"resources": [
"assets/images/*",
"assets/data.db",
"locales/**"
]
}
}
- パスは
tauri.conf.jsonからの相対パスです。 - ワイルドカード (
*,**) が使用可能です。
アクセス方法 (Rust)
PathResolver (v2 では AppHandle::path()) を使用して、リソースディレクトリ内の実パスを取得します。
use tauri::Manager;
#[tauri::command]
fn load_resource(app: tauri::AppHandle) -> String {
let resource_path = app.path().resolve("assets/data.db", tauri::path::BaseDirectory::Resource)
.expect("failed to resolve resource");
// resource_path は絶対パス (/Applications/MyApp.app/Contents/Resources/assets/data.db 等)
// これを使って File::open などを行う
format!("Path: {:?}", resource_path)
}
アクセス方法 (Frontend)
JavaScript から直接アクセスする場合も、まずは Rust コマンド経由でパスを取得するか、plugin-fs と path API を組み合わせて使用しますが、基本的には Rust 側で処理する設計が推奨されます。