You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NW.js访问硬盘文件时报net::ERR_UNKNOWN_URL_SCHEME错误如何解决

错误根因

你遇到的net::ERR_UNKNOWN_URL_SCHEME错误是NW.js内置Chromium内核的安全策略拦截导致的:Chromium默认禁止页面上下文直接通过file://协议加载本地媒体资源。你之前可以正常使用是旧版NW.js默认权限宽松,后续可能触发了NW.js自动更新、系统文件权限变动,导致原有默认权限失效,和你的业务代码没有关联。

修复方案

方案1:修改NW.js运行参数(快速生效)

在项目根目录的package.json中添加/修改chromium-args配置:

{
  "name": "你的音乐播放器",
  "main": "index.html",
  "chromium-args": "--allow-file-access-from-files --allow-file-access --disable-web-security --user-data-dir",
  // 其余原有配置无需改动
}

保存配置后重启应用即可,该配置放开了Chromium对本地file://协议资源的访问限制。

方案2:转Blob URL加载(长期稳定,无权限依赖)

不要直接把本地文件路径传给音频组件的src属性,通过NW.js自带的Node.js fs模块读取文件后转成Blob URL再传入:

// 本地路径转音频可用URL的示例代码
const fs = nw.require('fs');

function getAudioSrc(localPath) {
  const fileBuffer = fs.readFileSync(localPath);
  const audioBlob = new Blob([fileBuffer], { type: 'audio/*' });
  return URL.createObjectURL(audioBlob);
}

// 调用方法拿到URL后再传给AudioPlayer组件
const src = getAudioSrc(currentTracks[index]?.trackPath);

这种方式绕开了file://协议的访问限制,后续不管NW.js权限策略怎么调整都不会受影响。

内容的提问来源于stack exchange,提问作者Ben Jones

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 05:36:04