jar嵌入静态资源 供引用调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jar嵌入静态资源 供引用调用相关的知识,希望对你有一定的参考价值。

参考技术A 一、jar包的制作
1、maven工程引入下列三个依赖

2、写三个Java文件 和 相应资源包(vue+element)

3、写index.html ,可直接引用本地资源也可cdn 引入,正常编写网页
===================
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="app">
<el-button @click="visible = true">Button</el-button>
<el-dialog :visible.sync="visible" title="Hello world">
<p>Try Element</p>
</el-dialog>
</div>
</body>

<script src="https://unpkg.com/vue/dist/vue.js"></script>

<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script>
new Vue(
el: '#app',
data: function()
return visible: false

)
</script>
</html>
===================
4、InitListener 初始化文件,执行相应初始化动作,可不加

5、MvcConfig配置文件,自动装配bean

6、ThisApi 自定义注解类,并引入MvcConfig.class

7、生成jar包

二、jar包本地引入,并执行
1、新建springboot项目,引入web 和 thymeleaf ,正常执行,并做一个主页进行测试
2、本地引入jar包,在resources下新建lib ,并复制jar包

3、在启动类上,填写注解

4、正常执行,并访问jar中Configuration 中addResourceHandlers 配置的访问路径,就可以访问jar中的静态页面了

三、本地jar引入后打包注意事项

四、获取相关设置(简单通信)
1、InitListener
···
package com.juncheng.syc.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;

public class InitListener implements ServletContextListener



···
2、设置 application.properties

01-静态资源访问

静态资源分类:

SpringBoot默认设置的静态资源访问分为两种:jar中的静态资源自己添加的静态资源

如何访问jar包中的静态资源

  • 首先重点理解这里jar中的静态资源,指的是以jar包的方式引入的静态资源,如

技术图片

  • 通过查看SpringBoot源码可知,jar包中的访问路径为/webjars/**,而该路径映射到了classpath:/META-INF/resources/webjars/

  • 该映射,可以理解为,如果你要访问jar中的资源,你需要在浏览器中输入如下地址:http//:ip:port/webjars/具体的jar资源路径

  • classpath:/META-INF/resources/webjars/映射到web工程中所有jar

技术图片

??如你所见,引入的jar包中都有一个/META-INF/resources/webjars/目录

  • 访问举例,访问jquery.js,浏览器需要输入:hhtp://ip:port/webjars/jquery/3.4.1/jquery.js
    ps:别把这个 . 搞混了,它代表 /

如何访问自己添加的静态资源

浏览器所有的hhtp://ip:port/**请求,都会自动映射到以下的路径:

classpath:/META‐INF/resources/
classpath:/resources/
classpath:/static/
classpath:/public/
/ :当前项目的根路径 (233,我是在没摸准这个位置)

技术图片
这4个位置的资源都可以直接访问
自定义的静态资源中包含有:首页index.html网站图标favicon.ico,4个路径下的index.html都会被映射为首页,所以只需要有1个index.html即可,favicon.ico也是同理




以上是关于jar嵌入静态资源 供引用调用的主要内容,如果未能解决你的问题,请参考以下文章

在 c# 中从其他资源中引用嵌入式资源

在Salesforce中使用静态资源

SpringBoot 打包静态资源和 jar包分离怎么配置?

SpringBoot 打包静态资源和 jar包分离怎么配置?

SpringBoot 打包静态资源和 jar包分离怎么配置?

webjars管理静态资源