Spring boot将项目的静态资源提取到项目外面的文件夹

不少人发现静态资源每次随着项目打成jar包,都会不断浪费时间,占用磁盘内存,而且随着时间推移,项目内会有很多大的静态资源,比如视频,音乐等等。

于是我忽然想到把静态资源提出来,昨天下午尝试了一下,没头绪,但是今天上午突然想起来了,下午便实现了这个功能。

1.首先,先在config包下添加一个新的类WebResource,需要继承WebMvcConfigurationSupport,代码如下:

@Configuration
public class WebResource extends WebMvcConfigurationSupport {
    //对应application.yml配置文件里面的参数
    @Value("${resource.windowsResources}")
    private String resourcePathWindows;
    @Value("${resource.linuxResources}")
    private String resourcePathLinux;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //获得系统型号,注意,这里之所以获得是因为外面打代码,测试运行需要在Windows上面运行,而项目则一般发布在Linux。
        String osName = System.getProperty("os.name");

        //如果是Windows系统
        if (osName.toLowerCase().startsWith("win")) {
            registry.addResourceHandler("/resources/**").addResourceLocations("file:" + resourcePathWindows);
                    // /resources/**表示在磁盘filePathWindow目录下的所有资源会被解析为以下的路径 
        } else {  //linux 和mac
            registry.addResourceHandler("/resources/**").addResourceLocations("file:" + resourcePathLinux) ;
        }
        super.addResourceHandlers(registry);
    }

}

2.接下来便需要在application.yml中编写如下:

resource:
    ## windows系统下访问路径
    windowsResources: D:\java\
    ## linux系统下访问路径
    linuxResources: /project/myserver/resources/

注意:Windows下文件路径是 X:\xxx\xxx\,而Linux下文件路径是/xxx/xxx/xxx/.

切记,最后一定是以“\” 或 “/”结尾,不能以文件名结尾。

3.配置已经完成,接下来就是应用。

列举一段之前引入的css代码:

<link rel="stylesheet" type="text/css" href="css/base.css" />

注意:我是spring boot整合的thymeleaf,springboot自动搜索templates包下的static文件夹

下面是配置后的引入:

<link rel="stylesheet" type="text/css" href="resources/static/css/base.css" />

不同:resources/static,这是之前的config配置代码中的一段:registry.addResourceHandler("/resources/**").addResourceLocations("file:" + resourcePathWindows);

resource就是自己定义的字符串,而static则是我把static(包含css)整个文件夹放在了 :D:\java\

## windows系统下访问路径
windowsResources: D:\java\

4.测试,成功则上传资源,发布项目!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风亦思雨

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值