goedge的管理界面,网站管理http界面正常显示,切换到https设置界面就是空白,没有任何报错,什么原因

231 次阅读

本文最后更新于 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-forif (list.length > 0) 时直接崩溃,导致整个页面渲染中断,显示空白。


1. 核心原因定位

根据堆栈信息中的 at mn.evalat mn._render,问题出在前端渲染逻辑上。 最可能的诱因是:该网站(serverId=1)的 HTTPS 配置在数据库中损坏,或者存在不完整的记录。

2. 紧急解决方案

方法 A:尝试重置该站点的 HTTPS 设置(推荐)

既然页面进不去,我们可以绕过前端,尝试让后端重新初始化该字段:

  1. 数据库手动修复(进阶): 如果你熟悉 MySQL,检查 edgeServers 表中 id=1 的记录,查看 https 字段(通常是 JSON 格式)。如果里面有类似 "certs": null"listen": null 的地方,尝试将其改为 []

  2. 通过 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