feat(app-tauri): packager les assets web en ressource et les résoudre depuis le resource dir (#68)
L'AppImage ne pouvait pas servir d'assets web : `resolve_web_root` ne connaissait que `IDEA_WEB_ROOT`, le dossier de l'exécutable et le cwd — aucun ne pointe vers un bundle packagé. - `bundle.resources` embarque les assets sous `web/`, `beforeBuildCommand` déclenche le build du frontend. - Le resource dir Tauri descend de `lib.rs` jusqu'à `EmbeddedServerController` via `AppState::build_with_resource_dir`, en gardant les constructeurs historiques comme façade. - `resolve_web_root` insère le candidat packagé juste après `IDEA_WEB_ROOT`, qui garde donc la priorité pour le développement. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -51,6 +51,13 @@ impl AppState {
|
||||
/// into the backend core.
|
||||
#[must_use]
|
||||
pub fn build(app_data_dir: PathBuf) -> Self {
|
||||
Self::build_with_resource_dir(app_data_dir, None)
|
||||
}
|
||||
|
||||
/// Builds the shared backend core with the Tauri bundle resource directory
|
||||
/// available to desktop-only adapters.
|
||||
#[must_use]
|
||||
pub fn build_with_resource_dir(app_data_dir: PathBuf, resource_dir: Option<PathBuf>) -> Self {
|
||||
let core = Arc::new(BackendCore::build(app_data_dir.clone()));
|
||||
core.ticket_tool_binder
|
||||
.bind(Arc::new(AppTicketToolProvider {
|
||||
@ -69,7 +76,10 @@ impl AppState {
|
||||
core,
|
||||
pty_bridge: Arc::new(PtyBridge::new()),
|
||||
chat_bridge: Arc::new(ChatBridge::new()),
|
||||
embedded_server: Arc::new(EmbeddedServerController::new(app_data_dir)),
|
||||
embedded_server: Arc::new(EmbeddedServerController::with_resource_dir(
|
||||
app_data_dir,
|
||||
resource_dir,
|
||||
)),
|
||||
focused_project: Mutex::new(None),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user