Hexo的好处很多,坏处之一就是图片的处理了。虽然可以在_post下创建静态资源目录,但我是把这个目录当作笔记目录,多了一些文件夹强迫症真的受不了。而第三方图床服务,总不能放心。刚好我的服务器上同时还有个jar在跑,目的是提供我的api,那么就通过这个去实现我自己的图床吧。

实现方式

这个api.jar采用的是Spring Boot架构,虽然可以通过字节流去定义一个RESTful API提供图片服务,但觉得是高射炮打蚊子。还是直接增加一个外部资源目录,通过访问静态资源的方式去提供图片。本地通过ftp上传图片在这个目录。后续有必要的话,还可以建一个Git仓库,通过hooks转发到这个目录里去。

具体步骤

增加一个配置类,继承WebMvcConfigurerAdapter类,并重写addResourceHandlers方法。

package com.lefer.bed;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

/**
* @author fang
* @creatdate 17-7-31
*/
@Configuration
public class ImageBedConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/img/**").addResourceLocations("file:../img/");
super.addResourceHandlers(registry);
}
}

通过addResourceHandleraddResourceLocations将../img目录设置为静态资源目录,访问上下文是/img/。这样就可以通过http://ip:port/img/xxx.png 去访问 ../img/xxx.png 文件了。本站的所有图片都是通过这种方法提供。

END