使用 Solo 静态站点功能部署站点到 gitee 上的 Pages

本贴最后更新于 1409 天前,其中的信息可能已经渤澥桑田

说明

使用本地 Solo 项目的博客管理后台中的 静态站点 - 生成 功能后,会清空 solo\target\classes\static-site 文件夹后重新生成静态站点文件。
此时,将该文件夹中所有文件 复制-替换 到 static-site to gitee by SVN 文件夹中。(该文件夹是 svn://gitee.com/txjchu/txjchu 该项目的本地目录)
然后,通过 SVN 将更新后的本地文件提交到线上仓库。
最后,通过 https://gitee.com/txjchu/txjchu/pages 页面中的 更新 功能,最终实现静态页面的更新。

需要注意的是

  1. 静态站点 - 生成 功能的使用必须是在本地 IDEA 中运行项目的情况下才可使用,不能在通过 jar 包运行项目的方式下使用。
  2. 本地版本库文件夹不能直接使用 生成 功能的目标文件夹 static-site ,因为 生成 功能会直接删除掉 SVN 相关文件,且造成该文件夹不可用,最终生成功能出现 java.io.IOException: Unable to create directory xxxxxxx\solo\target\classes\static-site 异常。
    此处异常原因是,我本地电脑使用小乌龟 SVN 进行版本管理,可能造成了文件夹占用现象。

Solo - 静态博客页面步骤

准备
1. 本地运行 Solo 项目源码的环境。(包括 java 环境、mysql (若使用 mysql 数据库)、IDE)
2. 开通线上静态站点功能的线上仓库。(gitee 、github 上的仓库(gitee 上私有仓库支持 Pages , github 私有仓库上不支持)都有 Pages 功能,可实现搭建静态站点)
3. 配置好线上静态站点仓库地址的本地项目文件夹。(不能直接使用 static-site 文件夹)

步骤
1. 需要更新线上静态站点时,通过 IDEA 运行 Solo,在 http://localhost:8080/admin-index.do#tools/staticsite 中配置好静态站点地址 https://txjchu.gitee.io/ 后,点击 生成 按钮。
2. 将 static-site 文件夹中所有文件 复制-替换 到 static-site to gitee by SVN 文件夹中。
3. 提交 static-site to gitee by SVN 到线上仓库。
4. 点击 https://gitee.com/txjchu/txjchu/pages 页面中的 更新 功能按钮,完成静态站点更新。


2020 年 5 月 19 日 更新

注意

  1. 之前一直尝试使用 Solo 用户指南 - 本地运行 中介绍的使用 Windows: java -cp "lib/*;." org.b3log.solo.Server 命令去启动,结果怎么都不能成功。
    原因是:

下载最新的 Solo 包解压,进入解压目录执行

这里下载的是线上仓库中 releases 下发行版(.zip 压缩包),而我直接下载的是仓库 CClone or downloa 中的源码 .zip 压缩包。发行版中是经过编译后的,源码是没有经过编译,因此之上的那条 java 命令是不能够直接运行(会报 错误:找不到或无法加载主类 org.b3log.solo.Serverwulian 自己还一直纳闷难道是别人有啥自己不知道的骚操作

对于线上仓库的发行版 releases 之前是有过接触,通过相同的途径下载过其他项目/插件/工具的发行版,但一直没注意到 releases 是在线上仓库 Code 下,也没想到其表示的是项目/源码的另一种存储方式,之前还有些许疑问 releases 功能到底是个什么功能。

  1. 所以,修改一下本地运行的方案。
  • 直接下载线上仓库 releases 中的最新发行版 .zip 压缩包,解压后,在 Sol 文件夹内打开 CMD 命令框后,通过 java -cp "lib/*;." org.b3log.solo.Server 命令启动运行 Sol 项目,(前提是本地 MySQL 进程已启动,且创建有名为 Solo 的数据库。并且将 solo/local.properties 文件中的本地数据库连接信息配置正确。),若没有异常报错,则可通过浏览器访问 localhost:8080 进入博客了,在首页的管理功能中,可以登录博客的管理后台,进行愉快的使用了。

  • 在更新博客、更换皮肤、各种配置设置等骚操作后,即可通过 静态站点 - 生成 功能生成静态站点所需要的页面了。后续步骤同前文所述,保守起见,将所有静态文件复制到专门用来同步线上代码库的文件夹内,进行更新线上仓库的代码,如果是 git 仓库则还需要进入仓库的 Pages 服务页面进行更新功能操作才能最终完成线上静态站点博客的更新。

  • 另外可以通过版本管理工具,从 githubgit 的 Solo 仓库 down 下一份源码,并保持最新版本状态,可以进行研究学习等操作。


思考

  1. 下载到的线上的发行版后,未进行数据库配置,怎么直接连接到本地 MySQL 数据库的呢?

  2. 如本篇博文,是从本地 Solo 中推送到社区,当前在社区进行再次编辑的话,是否会同步更新到本地 Solo 中呢?

1 操作
PeterChu 在 2020-05-19 18:46:26 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • PeterChu
    作者

    推送到社区的博文,如果在社区进行再次编辑,不会同步更新到本地中。

  • PeterChu
    作者

    哇有点神奇

  • PeterChu
    作者

    思考

    1. wulian 默认数据库连接信息是 MySql 的默认连接。
    2. 在社区中进行编辑后的博文不会同步到本地,但是在本地再次更新后的博文发布时如果勾选了 同步到社区 的选项,则会同步修改社区中的博文。
  • bylx 1 评论

    也给你支持一下!

    ヽ(^ ー ^)人(^ ー ^)ノ huaji
    PeterChu
    1. 不用修改配置文件可以直接运行的,启动命令支持带入参数,具体可参考 -h 帮助手册
    2. 本地运行的话没法同步,因为社区连接不到本地网络
  • bylx

    巧了,看了你的更新,咱俩刚好相反。我是 idea 无法找到主类

    1 回复
  • PeterChu
    作者

    idea 启动项目需要先配置,应该是你没配置好吧

  • codesensi

    大佬,我部署到 gitee 之后,网站为什么没有样式呢,大佬直到怎么解决么

    1 回复
  • PeterChu
    作者

    看一下浏览器中的网络请求,找找看看样式文件没有加载出来的原因是啥。截个图让我看看

  • PeterChu
    作者

    粗暴的添加一个社区快捷键功能:T 返回页面顶部。

            // 添加热键 T 返回顶部
            window.onkeydown = function (evt) {
                evt = (evt) ? evt : ((window.event) ? window.event : "");
                if (evt) { // 按下 T 键后返回页面顶部
                    if (evt.keyCode == 84) {
                        document.body.scrollIntoView();
                    }
                }
            }
    
    
    
  • Ailjx 1 评论

    请问大佬我第一次弄,为啥一直更新失败

    image.png

    哪块更新失败了?先把截图这的 http 加个 s 吧,https
    PeterChu
请输入回帖内容 ...