三个关键配置点
1. 坚持使用 SSG
Tauri 的工作方式更接近静态站点宿主,它负责加载 HTML、CSS、JS 和 WASM。官方明确不支持基于服务器的 SSR 方案,所以必须走 SSG/SPA/MPA 这类静态路线。这意味着在 Leptos 里跑的是客户端渲染的 WASM 前端,而不是把服务端渲染也塞进去。
2. 移动端热重载协议
开发时如果连真机或模拟器,WebSocket 连接容易因为网络环境出问题。建议在 Trunk 里显式指定 ws_protocol = "ws",确保热重载能正常握手。
3. 全局对象注入
WASM 要调用 Tauri API,通常通过浏览器全局对象拿到 window.__TAURI__。需要在 Tauri 配置里打开 app.withGlobalTauri = true,这样全局对象才会被注入。
Tauri 配置文件
将以下配置合并进 src-tauri/tauri.conf.json:
{
"build": {
"beforeDevCommand": "trunk serve",
"devUrl": "http://localhost:1420",
"beforeBuildCommand": "trunk build",
"frontendDist": "../dist"
},
"app": {
"withGlobalTauri": true
}
}
这里主要解决几个问题:
beforeDevCommand:执行cargo tauri dev时自动启动 Trunk 服务。devUrl:开发模式加载的地址,需与 Trunk 端口一致。beforeBuildCommand:打包前自动编译静态资源。frontendDist:构建输出目录,注意是相对于src-tauri/的路径。withGlobalTauri:注入全局对象供 WASM 访问。

