SpringBoot使用WebJars统一管理静态资源的方法

传统管理静态资源主要依赖于复制粘贴,不利于后期维护,为了让大家往后更舒心,让WebJars给静态资源来一次搬家革命吧!!

学习目标

简单两步!快速学会使用WebJars统一管理前端依赖。

快速查阅

源码下载:SpringBoot Webjars Learning

使用教程

一、引入相关依赖

WebJars官网找到项目中需要的依赖,例如在项目中引入jQuery、BootStrap前端组件等。例如:

  • 版本定位工具:webjars-locator-core
  • 前端组件:jquery 、bootstrap
  <dependency><!--Webjars版本定位工具(前端)-->
    <groupId>org.webjars</groupId>
    <artifactId>webjars-locator-core</artifactId>
   </dependency>

   <dependency><!--Jquery组件(前端)-->
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.3.1</version>
   </dependency>

二、访问静态资源

在浏览器访问静态资源:

快速访问:http://localhost:8080/webjars/jquery/jquery.js  (推荐)
快速访问:http://localhost:8080/webjars/jquery/3.3.1/jquery.js

新手提问:

有小伙伴可能疑问,既然SpringBoot天然支持WebJars的静态资源访问,为什么还要额外添加定位工具webjars-locator-core呢?

快速答疑:

主要是为了解决访问WebJars静态资源时必须携带版本号的繁琐问题。举个例子,某项目准备将BootStrap 3.3.x 升级到 4.x 大版本,此时除了在POM文件调整之外,还需要大面积的在页面中调整因为版本号变更引起问题的路径,而使用定位器之后无需输入版本号自动定位。

总结

使用WebJars对前端依赖进行统一管理有什么好处呢?

1、静态资源版本化

传统的静态资源需要自行维护,资源种类繁多,使得项目后期越来越臃肿,维护版本升级也变得困难,而使用WebJars方式进行管理后,版本升级问题迎刃而解。

2、提升编译速度

经测试,使用WebJars的方式管理依赖可以给项目的编译速度带来2-5倍的速度提升,还在犹豫的小伙伴快点尝试起来吧!

3、在WebJars官方找不到自己想要的依赖怎么办?

解决办法:将下载好的静态资源目录发布到公司私服仓库即可。

例如:新建一个SpringBoot项目,手工创建目录 META-INF/resources/ ,将静态资源完整复制进去,然后发布公司Maven私服即可。当然,这只是简洁做法,如果想按照打造标准的WebJars资源请继续看下方。

4、将静态资源发布成标准的Webjars格式怎么弄?

解决办法:以Metronic为例 发布标准的webjars 资源到公司私服。

WebJars发布流程:

1、新建SpringBoot工程 然后在src\main\resources\ 新建目录 META-INF\resources\webjars\metronic  重点来了 这里4.1.9 必须跟POM文件的<version>4.1.9</version>保持一致。

2、修改POM文件 填写项目信息和公司私服地址。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 <!--项目信息-->
 <groupId>org.webjars</groupId>
 <artifactId>metronic</artifactId>
 <version>4.1.9</version>
 <packaging>jar</packaging>
 <name>metronic</name>
 <description>metronic</description>

 <!--维护信息-->
 <developers>
  <developer>
   <name>socks</name>
   <email>https://github.com/yizhiwazi</email>
  </developer>
 </developers>

 <!--发布地址-->
 <distributionManagement>
  <repository>
   <id>xx-repo</id>
    <!--这里替换成公司私服地址-->
<url>http://127.0.0.1:8088/nexus/content/repositories/thirdparty/</url>
  </repository>
  <snapshotRepository>
   <id>xx-plugin-repo</id>
    <!--这里替换成公司私服地址-->
<url>http://127.0.0.1:8088/nexus/content/repositories/thirdparty/</url>
  </snapshotRepository>
 </distributionManagement>

</project>

3、在本地MAVEN的配置文件指定公司私服的账号密码。

<?xml version="1.0" encoding="UTF-8"?>

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

 <localRepository>D:\dev\mvnrepository</localRepository>

 <mirrors>
   <!-- 阿里云仓库 -->
   <mirror>
    <id>aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>aliyun-all</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
   </mirror>

   <!-- 中央仓库1 -->
   <mirror>
    <id>repo1</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://repo1.maven.org/maven2/</url>
   </mirror>

   <!-- 中央仓库2 -->
   <mirror>
    <id>repo2</id>
    <mirrorOf>central</mirrorOf>
    <name>Human Readable Name for this Mirror.</name>
    <url>http://repo2.maven.org/maven2/</url>
   </mirror>
 </mirrors> 

  <!-- 暂时在发布仓库到213的时候用到-->
  <servers>
  <!-- 仓库地址账号 -->
  <server>
   <id>xx-repo</id>
   <username>admin</username>
   <password>123456</password>
  </server>
  <!-- 插件地址账号 -->
  <server>
   <id>xx-plugin-repo</id>
   <username>admin</username>
   <password>123456</password>
  </server>
 </servers>

</settings>

4、打开IDEA->Maven->Deploy 将项目到公司私服,大功告成。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • springboot登陆页面图片验证码简单的web项目实现

    写在前面 前段时间大家都说最近大环境不好,好多公司在裁员,换工作的话不推荐轻易的裸辞,但是我想说的是我所在的公司好流弊,有做不完的业务需求,还有就是招不完的人...... 最近我也是比较繁忙,但是还是要抽一点时间来进行自我复盘和记录,最近也写一个简单的小功能,就是登陆界面的图片验证码功能 环境:Tomcat9.Jdk1.8 1 生成验证码的工具类 public class RandomValidateCodeUtil { public static final String RANDOMCODE

  • Spring整合Weblogic jms实例详解

    本文主要介绍weblogic jms的配置,包括JMS 服务器和JMS 模块(连接工厂.队列.远程 SAF 上下文.SAF 导入目的地.SAF 错误处理)的配置:并在Spring环境下进行消息的监听及发送:为了更多的使用webloigc jms的功能,发送的队列使用saf配置的远程weblogic jms队列(两边的weblogic版本须一致),当然本地也是可以的.本文中demo所使用的软件环境为:weblogic 10.3.6.0.spring5.1.2.RELEASE 注:saf配置的远程队

  • 解决spring-boot2.0.6中webflux无法获得请求IP的问题

    这几天在用 spring-boot 2 的 webflux 重构一个工程,写到了一个需要获得客户端请求 IP 的地方,发现写不下去了,在如下的 Handler(webflux 中 Handler 相当于 mvc 中的 Controller)中 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; im

  • 详解Spring Boot2 Webflux的全局异常处理

    本文首先将会回顾Spring 5之前的SpringMVC异常处理机制,然后主要讲解Spring Boot 2 Webflux的全局异常处理机制. SpringMVC的异常处理 Spring 统一异常处理有 3 种方式,分别为: 使用 @ExceptionHandler 注解 实现 HandlerExceptionResolver 接口 使用 @controlleradvice 注解 使用 @ExceptionHandler 注解 用于局部方法捕获,与抛出异常的方法处于同一个Controller类

  • 详解spring boot整合JMS(ActiveMQ实现)

    本文介绍了spring boot整合JMS(ActiveMQ实现),分享给大家,也给自己留个学习笔记. 一.安装ActiveMQ 具体的安装步骤,请参考我的另一篇文章:http://www.jb51.net/article/127117.htm 二.新建spring boot工程,并加入JMS(ActiveMQ)依赖 三.工程结构 pom依赖如下: <?xml version="1.0" encoding="UTF-8"?> <project xm

  • spring整合JMS实现同步收发消息(基于ActiveMQ的实现)

    本文介绍了spring整合JMS实现同步收发消息(基于ActiveMQ的实现),分享给大家,具体如下: 1. 安装ActiveMQ 注意:JDK版本需要1.7及以上才行 到Apache官方网站下载最新的ActiveMQ的安装包,并解压到本地目录下,下载链接如下:http://activemq.apache.org/download.html,解压后的目录结构如下: bin目录结构如下: 如果我们是32位的机器,就双击win32目录下的activemq.bat,如果是64位机器,则双击win64目

  • spring boot 开发soap webservice的实现代码

    介绍 spring boot web模块提供了RestController实现restful,第一次看到这个名字的时候以为还有SoapController,很可惜没有,对于soap webservice提供了另外一个模块spring-boot-starter-web-services支持.本文介绍如何在spring boot中开发soap webservice接口,以及接口如何同时支持soap和restful两种协议. soap webservice Web service是一个平台独立的,低耦

  • SpringBoot深入理解之内置web容器及配置的总结

    前言 在学会基本运用SpringBoot同时,想必搭过SSH.SSM等开发框架的小伙伴都有疑惑,SpringBoot在spring的基础上做了些什么,使得使用SpringBoot搭建开发框架能如此简单,便捷,快速.本系列文章记录网罗博客.分析源码.结合微薄经验后的总结,以便日后翻阅自省. 正文 使用SpringBoot时,首先引人注意的便是其启动方式,我们熟知的web项目都是需要部署到服务容器上,例如tomcat.weblogic.widefly(以前叫JBoss),然后启动web容器真正运行我

  • SpringBoot使用WebJars统一管理静态资源的方法

    传统管理静态资源主要依赖于复制粘贴,不利于后期维护,为了让大家往后更舒心,让WebJars给静态资源来一次搬家革命吧!! 学习目标 简单两步!快速学会使用WebJars统一管理前端依赖. 快速查阅 源码下载:SpringBoot Webjars Learning 使用教程 一.引入相关依赖 在 WebJars官网找到项目中需要的依赖,例如在项目中引入jQuery.BootStrap前端组件等.例如: 版本定位工具:webjars-locator-core 前端组件:jquery .bootstr

  • SpringBoot通过源码探究静态资源的映射规则实现

    我们开发一个Spring Boot项目,肯定要导入许多的静态资源,比如css,js等文件 如果我们是一个web应用,我们的main下会有一个webapp,我们以前都是将所有的页面导在这里面的,对吧!但是我们现在的pom呢,打包方式是为jar的方式,那么这种方式SpringBoot能不能来给我们写页面呢?当然是可以的,但是SpringBoot对于静态资源放置的位置,是有规定的! 1.静态资源映射规则 1.1.第一种映射规则 SpringBoot中,SpringMVC的web配置都在 WebMvcA

  • 在SpringBoot中静态资源访问方法

    一.概述 springboot 默认静态资源访问的路径为:/static 或 /public 或 /resources 或 /META-INF/resources 这样的地址都必须定义在src/main/resources目录文件中,这样可以达到在项目启动时候可以自动加载为项目静态地址目录到classpath下 ,静态访问地址其实是使用 ResourceHttpRequestHandler 核心处理器加载到WebMvcConfigurerAdapter进行对addResourceHandlers

  • 解决springboot 2.x 里面访问静态资源的坑

    目录 springboot 2.x 里面访问静态资源的坑 首先看一下 自动配置类的定义: 如果想要使用自动配置生效 SpringBoot2.x过后static下的静态资源无法访问 springboot 2.x 里面访问静态资源的坑 在spring boot的自定义配置类继承 WebMvcConfigurationSupport 后,发现自动配置的静态资源路径 classpath:/META/resources/,classpath:/resources/,classpath:/static/,c

  • SpringBoot无法访问/static下静态资源的解决

    SpringBoot无法访问/static下静态资源 SpringBoot 访问静态资源的规则 都在WebMvcAutoConfiguration自动配置类中 在该类下有对资源处理的方法 默认按照该加载顺序,加载静态资源文件,而我尝试了N次,浏览器无法访问资源:查看官网后,我又修改了默认的加载位置.如下: spring.resources.static-locations=/static/ 但是还是没有能如期访问! 而回过头再回过头看Web的自动配置类,我发现了一个被忽略的配置 在WebMvcC

  • Yii2 加载css、js 载静态资源的方法

    应用场景 Yii2提供了AppAsset类管理静态资源,在使用Yii2 布局模板时,如果想在某个页面内部写一段js 并且在页面底部,如果直接使用 script 标签是不可以的. 使用AppAsset类管理静态资源 打开assetsAppAsset.php,定义 addJs(),addCss() 分别用于在静态页面引入外部js.css 文件 1.修改AppAsset.php文件代码 namespace backend\assets; use yii\web\AssetBundle; /** * @

  • 基于Springboot2.3访问本地路径下静态资源的方法(解决报错:Not allowed to load local resource)

    最近在做的一个项目中有一个比较奇葩的需求: 要在springboot中,上传本地的图片进行展示 我的第一反应是,直接在数据库字段加一个存储本地路径的字段,然后用thymeleaf的th:src渲染到前端就好了嘛! 理想很丰满,但现实却很骨感~ 前端报了这样的错误Not allowed to load local resource 于是我想到了可以使用IO将图片先上传到static/images目录下,这样就不会出现禁止访问本地路径的问题了 但是这样实现,问题又来了:上传后的图片必须重启sprin

  • vue-cli与webpack处理静态资源的方法及webpack打包的坑

    通过Vue-cli进行webpack打包的坑 Vue-cli为Vue项目搭建的脚手架的确很方便,但打包时容易出现空白页,或者对应的静态资源加载不了. 我是通过将项目/config下的index.js的assetsPublicPath变成'./',变成相对路径,进行解决. cd vue demo npm run dev //运行程序 npm run bulid //webpack打包 处理静态资源 你也许会注意到vue-cli与webpack结合的项目中,我们通常会有两个静态资源的路径:src/a

  • linux服务器上使用nginx访问本地静态资源的方法

    1.查看80端口是否被占用,一般80端口多被apache服务占用. netstat -anp|grep 80 2.修改apache服务的端口号 vim /etc/apache2/ports.conf 3.将端口号修改为8080 4.修改nginx服务配置 vim /etc/nginx/conf.d/nginx.conf 5.重启nginx服务 service nginx restart 6.页面尝试访问本地资源 7.访问成功! 总结 以上所述是小编给大家介绍的linux服务器上使用nginx访问

  • nginx实现发布静态资源的方法

    步骤 将准备好的静态资源文件放在指定文件夹 更改nginx的配置文件:nginx.conf 启动nginx服务:start nginx (一定要切换到nginx的目录下) 在浏览器中检查是否发布成功 实际操作 把所发布的静态网页放入指定文件夹: 更改nginx的配置文件: nginx.conf配置内容如下: #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice;

随机推荐