yiqiaoxihui 如题 我本人想在一台无互联网机器A离线部署halo,将下载好的docker镜像打包后,导入服务器A中,启动docker run启动Halo,浏览器第一次访问时一直转圈加载不出来,调试模式才发现Halo需要联网加载一些js文件,但是离线服务器无法访问网络,导致js文件无法加载,请问这种情况下有解决方案吗?
Takagi 目前来说,不改源码的情况下,你可以尝试将所有目标域名的 js,都下载到本地。 然后使用代理更改目标域名的地址让其指向本地。。 嗯。这是理论可行。 你可以试一下吧。 如果改 jar 包源码,可以用压缩文件,打开 halo-xxx.jar, 然后找到 BOOT-INF/classes/admin 这是 admin 所在的地址,你看看改改 index.html 吧,然后把路径改为本地的。
Ryan Wang 👍 Takagi 人家说了无互联网机器,也就是外网不通。那就不要考虑其他用户访问了,只是在本地环境访问。 admin 并不是粗暴的把 js css 放到了 jsdelivr cdn,某些组件和路由用了懒加载,有些资源是在 js 中加载的。即便你把 cdn 上的资源下载下来,其中的请求地址还是 jsdelivr cdn。正确的做法是参考 https://github.com/halo-dev/halo-admin 自行打包并放到 halo 的 admin 下,然后构建 halo。 通过 2,admin 应该可以访问了,但是目前大部分主题的静态资源也是在公共 cdn,你还需要修改对于的主题。
yiqiaoxihui Ryan Wang 👍 感谢解答,我试一下哈! 有个过分的要求,能不能发布一个离线版本的halo,最好是docker封装好的,毕竟都用docker了,目的也是为了没有任何依赖,哈哈哈,过分啦。再次感谢解答。