没啥时间,先往这里随便写写,到时候精编再发博客上。
之前开发主题一直是开发好之后打个包上到测试服务器运行,但是效率太低了,于是尝试部署个本地测试服务器。
Windows 下 docker 实在不喜欢用,源码部署也因为有 error 一直跑不起来,翻了翻 release。发现每次发版都有发 jar 包,
那不正好了作为一个高版本 MInecraft Java Edition 玩家\插件开发者,电脑掏出一个 jdk 17 还是轻轻松松的。
jar 包部署明明是最简单最快捷的,但是不知道为何在主题开发手册中为何只提及了源码启动和 docker 启动。
快速下载部署
我的目录是 E:/FileLibrary/CloneOthers/halo2
下面配置文件有数据库位置和工作目录位置 这两个地方改成你的运行位置。
application.yaml
server:
# 运行端口
port: 8090
spring:
# 数据库配置,支持 MySQL、MariaDB、PostgreSQL、H2 Database,具体配置方式可以参考下面的数据库配置
r2dbc:
url: r2dbc:h2:file:///E:/FileLibrary/CloneOthers/halo2/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE
username: admin
password: 123456
sql:
init:
mode: always
# 需要配合 r2dbc 的配置进行改动
platform: h2
thymeleaf:
cache: false
halo:
caches:
page:
# 是否禁用页面缓存
disabled: true
# 工作目录位置
work-dir: E:/FileLibrary/CloneOthers/halo2
# 外部访问地址
external-url: http://localhost:8090
# 附件映射配置,通常用于迁移场景
attachment:
resource-mappings:
- pathPattern: /upload/**
locations:
- migrate-from-1.x
一行指令启动。halo-2.15.1.jar
改为你所用的 jar 包文件的名字,当然后面的路径也要改成你的运行路径
java -jar halo-2.15.1.jar --spring.config.additional-location=optional:file:E:/FileLibrary/CloneOthers/halo2
总所周知,Windows 上有一款很好用的小工具可以随时随地创建软链接和硬链接。
(好似自带汉化,反正我用的是有汉化的)
下载链接:https://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
于是我直接将我的主题开发目录 软链接 了一份到 /themes 底下。
主题管理果然出现了本地未安装的主题
,点击安装,结果一直报错。
查看后台,发现提示 java.lang.IllegalArgumentException: The manifest file [theme.yaml] is required.
我百思不得其解,为什么没有 theme.yaml 呢,明明目录下就有的。
随后我尝试了硬链接,直接复制目录,当然都没有效果。
出门遛个弯,我通过压缩包导入的时候,我发现 themes 中创建的目录是 howiehz-higan。
晕,这不是我 theme.yaml metadata: name 的设置值吗,我项目名是 halo-theme-higan-hz,创建的文件夹也是 halo-theme-higan-hz,所以找不到。
?但是不读取我的 theme.yaml 怎么知道要去找 howiehz-higan 目录下
所以 halo 这是扫描了 themes 文件夹下全部的文件夹内的 theme.yaml,结果最后设定读取目录为 metadata 中指定的值,而不是 themes 文件夹下扫描到的文件夹的位置。没看源码,不确定,这种设计太迷惑人了,本地未安装的主题
显示了,但是却无法使用,还好我出门溜了个弯。
于是我再次创建了一个软链接,并且改名成 howiehz-higan,果真就可以正常运行了。