之前一直忽视了这个问题,直接导致taiga-front的部署的时候不能通过其他IP访问。

如图:

json文件不能有注释-LMLPHP

首先是提示

这样导致用默认的conf 也就是后面那句:

现在因为部署版本的conf.json读取失败(因为注释的原因),导致加载了默认的开发时配置。默认的conf.json:

{
"api": "http://localhost:8000/api/v1/",
"eventsUrl": null,
"eventsMaxMissedHeartbeats": 5,
"eventsHeartbeatIntervalTime": 60000,
"debug": true,
"debugInfo": false,
"defaultLanguage": "en",
"themes": ["taiga"],
"defaultTheme": "taiga",
"publicRegisterEnabled": true,
"feedbackEnabled": true,
"privacyPolicyUrl": null,
"termsOfServiceUrl": null,
"maxUploadFileSize": null,
"contribPlugins": [] }

而部署版的conf.json:

{
"api": "http://192.168.1.152/api/v1/",
"eventsUrl": "ws://192.168.1.152/events",
"debug": true,
"publicRegisterEnabled": true,
"feedbackEnabled": true,
"privacyPolicyUrl": null,
"termsOfServiceUrl": null,
"maxUploadFileSize": null,
"contribPlugins": []
}

最大的区别就是后端api 的地址

localhost:8000。相当于本机开发前端,在本机起后端。

而部署时,这里是要替换成域名或主机IP的。

那么如果用默认conf.json从外网访问,没有访问taiga主机的IP,而是去找客户机的localhost:8000,直接导致无法注册、跳转(直接卡死在首页上)

——其实,taiga这样设计也有问题,第3步,按说应该完全封装内网不应该找不到,不应该再从客户端看见这种报错了。

——解决方案:老实把注释删了,留下11行的json

心得:不要想当然,要相信报错。

自己用pyhon的json.load() 读一下conf.json,就确认无疑了,再去上网查一下,就确认问题了。

直接用报错信息搜索,是搜不到答案的。(也许恰恰是自己太弱智了,别人都没遇到)。

——后记,之后还时报这个错,发现另外一个问题:

frontend 复制配置文件在 COPY或-v挂源代码之前了。这样根据docker image的堆叠机制,导致conf.json被覆盖(没有)

源码的配置文件,是源码的一部分,在外面生成好,一起挂进去,OK

05-11 17:27