昨天有人问我怎么在Halo添加HTML静态页面,开始想的是把静态页面放到resources/static目录下,这样略麻烦。后面想了想,可以通过主题的方式来上传静态页面,非常方便。

实现原理

Halo给resources/templates/themes添加了资源映射,所以访问themes目录的资源只需要/主题文件夹/文件这种路径格式就行了,所以我们可以把我们需要使用的静态页面打包从后台主题管理上传上去。

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**") .addResourceLocations("classpath:/templates/themes/")
}

具体操作

新建一个文件夹

用于存放html和静态资源文件,如下图目录结构

编写页面

看看html和css文件的内容


需要注意的是引用资源文件的路径,可以看到上图html文件里面引用css的时候在前面是加上了/test的,也就是文件夹名,为什么要这么做?可以参考上面的资源映射。

上传HTML页面

页面做完之后就可以上传了,首先我们将文件夹压缩成zip压缩包,然后在Halo后台的主题管理上传压缩包就可以了。

访问页面

按照这个格式访问就可以了:域名/html文件夹/页面.html就行了,如https://ryanc.cc/test/index.html。

添加菜单

如图所示