本文最后更新于 2026年5月16日。
主要是前端html有bug,前后端都修复了。
有空值,并且对空值进行了length属性。
goedge的管理界面,网站管理http界面正常显示 http://10.10.10.10:7788/servers/server/settings/http?serverId=1 ,切换到https设置界面http://10.10.10.10:7788/servers/server/settings/https?serverId=1就是空白,没有任何报错,什么原因
控制台有这样的错误
vue.min.js?v=b6xSnD:6 Error: TypeError: Cannot read properties of null (reading 'length')
at spread.js:25:1
at Re (vue.min.js?v=b6xSnD:6:10737)
at Fe (vue.min.js?v=b6xSnD:6:10664)
at mn._render (vue.min.js?v=b6xSnD:6:32887)
数据库里记录是这样的
{"isOn":true,"listen":[{"protocol":"https","host":"","portRange":"1443","minPort":0,"maxPort":0}],"sslPolicyRef":{"isOn":true,"sslPolicyId":1},"sslPolicy":null}
临时改成后就可以打开了,然后再配置
{"isOn":true,"listen":[{"protocol":"https","host":"","portRange":"443","minPort":0,"maxPort":0}],"sslPolicyRef":null,"sslPolicy":null}
不用重启容器,数据库更改实时生效
这个错误非常明确:Vue 在尝试渲染 HTTPS 页面时,读取了一个值为 null 的对象的 .length 属性。
这通常是因为后端返回的 HTTPS 配置数据中,某个预期的数组(Array)字段(比如证书列表、监听地址列表或加密套件列表)返回了 null 而不是空数组 []。Vue 模板在执行类似 v-for 或 if (list.length > 0) 时直接崩溃,导致整个页面渲染中断,显示空白。
1. 核心原因定位
根据堆栈信息中的 at mn.eval 和 at mn._render,问题出在前端渲染逻辑上。 最可能的诱因是:该网站(serverId=1)的 HTTPS 配置在数据库中损坏,或者存在不完整的记录。
2. 紧急解决方案
方法 A:尝试重置该站点的 HTTPS 设置(推荐)
既然页面进不去,我们可以绕过前端,尝试让后端重新初始化该字段:
-
数据库手动修复(进阶): 如果你熟悉 MySQL,检查
edgeServers表中id=1的记录,查看https字段(通常是 JSON 格式)。如果里面有类似"certs": null或"listen": null的地方,尝试将其改为[]。 -
通过 API 或配置文件: 如果你有其他的站点 HTTPS 是正常的,对比一下它们的配置差异。
改成 {"isOn":true,"listen":[{"protocol":"https","host":"","portRange":"443","minPort":0,"maxPort":0}],"sslPolicyRef":null,"sslPolicy":null} 之后就正常了,然后配置选择已有证书,之后就又不正常了
检查程序是不是有bug,admin设置网站选择https为已有证书后前端https设置界面就成空白了,控制台报错
TypeError: Cannot read properties of null (reading 'length')
at mn.eval (eval at ka (vue.min.js?v=b6xWKF:6:84844), <anonymous>:3:7992)
at mn._render (vue.min.js?v=b6xWKF:6:32840)
at mn.<anonymous> (vue.min.js?v=b6xWKF:6:63996)
at St.get (vue.min.js?v=b6xWKF:6:16124)
at St.getAndInvoke (vue.min.js?v=b6xWKF:6:17157)
at St.run (vue.min.js?v=b6xWKF:6:17085)
at At (vue.min.js?v=b6xWKF:6:15075)
at Array.<anonymous> (vue.min.js?v=b6xWKF:6:11526)
at ze (vue.min.js?v=b6xWKF:6:10986) ;数据库中 edgeServers 表中网站的https字段更新成
{"isOn":true,"listen":[{"protocol":"https","host":"","portRange":"443","minPort":443,"maxPort":443}],"sslPolicyRef":{"isOn":true,"sslPolicyId":4},"sslPolicy":null}
edgeSSLPolicies会新建一个记录
4 1 0 1 [{"isOn":true,"certId":1}] [] 0 0 null 0 0 0 1 1778830048