Open3
tauriでWebViewから直接ローカルファイル読み込む
こういうことがしたかった
function app() {
return (<img src="file://aaaa/bbbb/cccc.png" />)
}
デフォルトでは当然のようにできない
not allowed to load local resource って怒られる
解決策
tauriから提供されている convertFileSrc でアクセス可能なパスに変換する
具体例
tsx
import { convertFileSrc } from '@tauri-apps/api/tauri';
function app() {
return (<img src={convertFileSrc("aaaa/bbbb/cccc.png") } />)
}
tauri.conf.json
-
tauri/allowlist/protocol追加-
assetScopeにはパス指定(今回は全アクセスしたかったので**)
-
{
"tauri": {
"allowlist": {
"protocol": {
"asset": true,
"assetScope": [ "**" ]
}
},
-
tauri/security/cspに以下を追加
{
"tauri": {
"security": {
"csp": "default-src 'self'; img-src 'self' asset: https://asset.localhost"
},