如何配置Tauri应用读取外部配置文件?请求排查权限报错问题
解决Tauri读取外部配置文件的权限问题
问题根源
你用fetch读取本地配置文件时触发的报错,是因为fetch属于Web标准API,受Tauri的**内容安全策略(CSP)**限制,而非fs.scope配置。fs.scope是给Tauri官方提供的fs API(如readTextFile)做权限控制的,和fetch的资源加载规则不相关。
推荐解决方案:改用Tauri的fs API
直接使用Tauri提供的文件读取API,完全适配fs.scope的权限配置,代码示例:
import { appConfigDir } from '@tauri-apps/api/path'; import { readTextFile } from '@tauri-apps/api/fs'; // 读取配置文件 const configFilePath = `${await appConfigDir()}symbol-sets.json`; const configContent = await readTextFile(configFilePath); // 解析为JSON对象 const symbolSets = JSON.parse(configContent);
这种方式不需要修改额外配置,你的tauri.conf.json中fs部分的配置已经足够:
"tauri": { "fs": { "readFile": true, "scope": ["$APPCONFIG/*"] } }
备选方案:放宽CSP以支持fetch(不推荐)
如果一定要保留fetch方式,需要修改tauri.conf.json中的security.csp,允许加载本地文件资源。但这种做法会降低应用安全性,仅作参考:
"tauri": { "security": { "csp": "default-src 'self'; connect-src 'self' file://*; img-src 'self' file://*; media-src 'self' file://*; script-src 'self'; style-src 'self' 'unsafe-inline'" }, "fs": { "readFile": true, "scope": ["$APPCONFIG/*"] } }
内容的提问来源于stack exchange,提问作者padeso
相关产品推荐
相关产品推荐

