Repository navigation
【已修复并验证】远程用 Web 时文件预览失败(鸿蒙 ArkWeb):已定位根因并真机验证补丁 #11242
kidding1412
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
鸿蒙 ArkWeb(及若干旧内核)下,远程访问 DSH Web 时所有文件预览都报「文件资源服务不可用」;根因是
protocolOf()依赖new URL().hostname,而这些内核不把dsh-resource://的//<type>当 authority。我已在真机验证修复方法有效,附前后对比图与补丁。现象(同一会话、同一文件:修复前 / 修复后)
修复前:点任何文件链接,右侧预览面板固定显示「文件资源服务不可用」;聊天、工具调用、WebSocket 全部正常。
修复后:同一地址、同一文件,HTML / Markdown / TXT / PNG / DOCX 预览全部恢复。
最小复现
在受影响设备的控制台执行:
根因
packages/client/resources/src/client/resources.ts:56-68:hostname 为空 → 找不到 provider → 资源状态
none→ 预览面板渲染resourceUnavailable。master
22ddee379240(2026-10-23)仍是这一行;该文件自 2026-09-09 起未改动。已验证的修复
不依赖引擎的 authority 解析,改为字符串切分:
tests/resources.client.spec.ts:96-105的 8 条断言,该实现全部通过(本地 Node v24.21.0 实测)new URL快路径、仅在hostname为空时回退字符串切分(见 [Bug] dsh-client-resources 的 protocolOf 依赖 new URL().hostname,Edge 129 下文件预览显示“文件资源服务不可用” #6437 的补丁),对规范引擎零偏离;本帖所附为最小验证版环境
@deepseek-ai/dsh0.2.1-rc.2(npm 全局,dsh web,经 SSH 转发 / frp 暴露访问)关联
git apply的上游补丁)PPTX 预览失败是另一个问题(捆绑 pdf.js 依赖
Map.prototype.getOrInsertComputed),不在本帖范围。All reactions