Windowsでtauriのscopeを許可しているのに許可されていないと出る
tauri.conf.jsonで
"protocol": {
"asset": true,
"assetScope": ["**", "*"]
}と指定しているのに実際読み込んでみるとasset protocol not configured to allow the path:のエラーが出る。
調べてみたところ思ったより根深そうだったのでメモ。
#原因
原因は、今回assetで読み込もうとしていた場所がrcloneでマウントした場所だったことのようだ。そのようなドライブを読み込もうとすると
の場所でstd::fs::canonicalizeが
std::fs::canonicalize(path) = Err(
Os {
code: 1005,
kind: Uncategorized,
message: "このボリュームは認識可能なファイル システムではありません。\r\n必要なファイル システム ドライバーがすべて読み込まれているか、ボリュームが壊れていないか確認してください。",
},
)
というエラーで失敗する。
rcloneというより内部で使われているWinFSPが問題っぽい。
#対策
rcloneでマウントするのは変えるのが難しいのでtauriのほうでなんとかしたい。
とりあえずstd::fs::canonicalizeを使わないようにしたカスタムプロトコルを作って対処できそう。
セキュリティ的に若干問題ありそうだけど今回は読み取りオンリーのassetなのでまあよしとする