用neutralinojs开发了一个桌面应用,开发环境能正常调用文件系统api,但打包成exe后执行nfs.readDir()就报403错误。我检查过manifest.json里的enableAPI: true,也尝试过绝对路径还是不行,求大神指点
这是我的manifest配置片段:
{
"neutralino": {
"enableAPI": true,
"apiPermissions": {
"fileSystem": {
"read": true,
"write": true
}
}
}
}
解决方法是需要在manifest.json里明确声明允许访问的具体路径。像这样在apiPermissions下添加allowedPaths配置:
{
"neutralino": {
"enableAPI": true,
"apiPermissions": {
"fileSystem": {
"read": true,
"write": true
},
"allowedPaths": {
"dirs": ["C:\your\target\path"]
}
}
}
}
记得把路径改成你实际要读取的目录,并且注意双反斜杠转义。allowedPaths可以配置多个目录,建议只开放确实需要访问的路径,别直接写个根目录,这涉及到安全风险。
另外提醒一下,生产环境的应用要特别注意文件系统权限控制,避免出现任意文件读写漏洞。如果你的应用需要访问用户选择的任意目录,最好通过 Neutralino's client API 的 file dialogs 来获取安全路径。
改完配置记得重新打包,清除之前的构建缓存。如果还遇到问题,可能需要检查杀毒软件或者系统权限设置。