您当前的位置: 首页 >  ar

梁云亮

暂无认证

  • 1浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SpringBoot静态资源和WebJars

梁云亮 发布时间:2020-06-02 15:38:20 ,浏览量:1

SpringBoot静态资源目录

默认情况下,Spring提供了如下几个静态资源目录:

目录说明/staticclasspath:/static//publicclasspath:/public//resourcesclasspath:/resources//META-INF/resourcesclasspath:/META-INF/resources

可以通过spring.resources.static-locations配置指定静态文件的位置。 注意:一旦自己指定的静态资目录,系统默认的静态资源目录就会失效。一般情况下系统默认的就已经够使用了,尽量不要自己定义。

spring:
  resources:
    static-locations: classpath:/mystatic/  # 指定静态资源目录
favicon.icon

如果在配置的静态资源目录中favicon.icon文件,SpringBoot会自动将其设置为应用图标。

欢迎页面

SpringBoot支持静态和模板欢迎页,它首先在静态资源目录查看index.html文件作为首页,若未找到则查找index模板。

使用webjars管理JS和CSS WebJars简介

我们在开发Java web项目的时候会使用像Maven,Gradle等构建工具以实现对jar包版本依赖管理,以及项目的自动化管理,但是对于JavaScript,Css等前端资源包,一般情况下,我们采用拷贝到webapp下的方式,通过手工进行管理,这种通方式容易导致文件混乱、版本不一致等问题,而且无法对这些资源进行依赖管理。

WebJars通过将这些通用资源(JavaScript,Css等)打成jar包文件,然后借助Maven对资源进行统一依赖管理,从而保证这些WEB资源版本的唯一性。

WebJars官网:https://www.webjars.org/ 。我们可以在这个网站上找到自己需要的资源,然后在自己的工程中添加Maven依赖,就可以直接使用这些资源了。

WebJars并不仅仅是依赖这么简单,它还提供了如下功能:

  • 将静态资源版本化,更利于升级和维护。 传统的静态资源需要自行维护,资源种类繁多,使得项目后期越来越臃肿,维护版本升级也变得困难,而使用WebJars方式进行管理后,版本升级问题迎刃而解。
  • 剥离静态资源,提高编译速度和打包效率。 经测试,使用WebJars的方式管理依赖可以给项目的编译速度带来2-5倍的速度提升,还在犹豫的小伙伴快点尝试起来吧!
  • 实现资源共享,有利于统一前端开发。
  • 清晰的管理web依赖
  • 通过Maven、Gradle等项目管理工具就可以下载WEB依赖
  • 解决WEB组件中传递依赖的问题以及版本问题
  • 页面依赖的版本自动检测功能
  • webjars就是以jar包的方式引入静态资源;
  • 通过WebJars可以让我们以jar包的形式来使用前端的各种框架、组件。
  • WebJars提供给我们前端资源的jar包形势,我们就可以进行依赖管理。
示例 第一步:在WebJars官网查找对于的组件,比如jquery

    org.webjars.bower
    jquery
    3.5.1


    org.webjars
    bootstrap
    4.5.0

第二步:application.yml
server:
  port: 80
  servlet:
    context-path: /wjd

spring:
  thymeleaf:
    #前缀,也就是模板存放的路径
    prefix: classpath:/templates/
    #编码格式
    encoding: UTF-8
    #关闭缓存,不然无法看到实时页面
    cache: false
    #后缀
    suffix: .html
    #设置不严格的html
    mode: HTML
    servlet:
      content-type: text/html
第三步:定义用户请求的Controller:
@Controller
public class DispatcherController {

    @RequestMapping("/demo")
    public String demo(){
        return "demo";
    }
    
    @RequestMapping("/demo2")
    public String demo2(){
        return "demo2";
    }

}
第四步:页面引入


    
        
        webjars不使用版本定位工具
        
        
        
    
    
        
            
                ×
                Hello, Dalaoyang!
            
        
        
        haha
        
        JQuery

        
            $("#btn").click(function () {
                alert(23+32);
            });
        
    

SpringBoot会将webjar中路径/webjars/**的访问重定向到项目的classpath:/META-INF/resources/webjars/*中。

第五步:启动项目,查看效果:

在这里插入图片描述 单击按钮: 在这里插入图片描述

第六步:代码优化

像上面的每个引用文件里都要带一个版本,假如项目要升级,需要挨个修改版本号,十分麻烦。解决办法,Maven中添加版本定位工具:


    org.webjars
    webjars-locator-core
    0.45

调整后的页面代码:



    
        
        WebJars使用版本定位工具
        
        
        
    
    
        
            
                ×
                Hello, Dalaoyang!
            
        
        
        JQuery

        
            $("#btn").click(function () {
                alert(23+32);
            });
        
    

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0452s