Webjars&静态资源映射规则|学习笔记

简介: 快速学习 Webjars&静态资源映射规则

开发者学堂课程【SpringBoot快速掌握 - 核心技术Webjars&静态资源映射规则】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/612/detail/9241


Webjars&静态资源映射规则


一、SpringBoot对静态资源的映射规则

1.创建新的工程:

选中web模块,点击下一步

点击下一步完成创建

2.检查pow文件

org.springframework.boot

spring-boot-starter-web

记得点击自动导包,进行导入

3.创建HelloController文件

功能为添加一个请求,返回一个字符串

package com.atguigu. springboot.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

@Controller

public c1ass HelloController {

//记得添加对应注解

@ResponseBody

@RequestNapping("/hel1o"){

public String hello){

return "He1lo Wor1d";

}

}

运行,并且在浏览器中进行测试,

输入链接localhost:8080/hello进行访问

返回hello world说明测试成功

这就是wed模块快速开发

查看spring MVC自带的添加资源映射的配置代码(源代码)

@Override

public void addResourceHandlers (ResourceHandlerRegistry registry) {

if (!this .resourceProperties . isAddMappings()) {

logger。debug( "Default resource handling disabled");

return;

Integer cachePeriod = this . resourceProperties.getCachePeriod();

if (Iregistry . hasMappingForPattern( ( pathPattern: "/webjars/**)) {

cust omi zeResourceHandlerRegi strat ion(

registry.addResourceHandl er( ..pathPatterns”/webjars/**")

addResourceLocations(

"classpath:/META-INF/resources/webjars/")

. setCa chePeriod(cachePeriod));

}

String staticPathPattern = this . mvcProperties. getStaticPathPattern();

// registry添加资源映射

if ( registry .hasMappingForPattern(staticPathPattern) {

cust omi zeResourceHandlerRegistrat ion(

registry . addResourceHandler(staticPathPattern)

addResourceLocat ions(

this .resourceProperties . getStaticLocations())

. setCachePeriod(cachePeriod));

5.Webjars主要规则设置:@ConfigurationProperties(prefix="spring.resources",ignoreUnknownFields=false)public class ResourceProperties implements ResourceLoaderAware {

//可以设置和静态资源有关的参数,缓存时间等

addResourceHandlers类中

6.所有/webjars/**都去 classpath:/META- INFIresources/webjars/找资源;

webjars :以jar包的方式引入静态资源﹔

在下列网站中参考webjars用法,可以在其中直接下载maven的包,pow文件代码直接引入

http;//www.webjars.org/

访问webjars中内容

localhost:8080/webjars/jquery/3.3.1/jquery.js

在访问的时候只需要写webjars下面资源的名称即可

org.webjars

jqueryc/artifactId>

3.3.1

设置完成后重启idea查看效果:访问localhost:8080/webjars/jquery/3.3.1/jquery.js

成功访问到了webjars中的js代码部分

@ConfigurationProperties(prefix =” spring.resources",ignoreUnknownFields = false)

public class ResourceProperties implements Re sourceloaderAware {//可以设置和静态资源有关的参数,比如缓存时间等

7.第二种映射规则"/**”访问当前项目的任何资源,(静态资源的文件夹)

会在这几个文件夹中查找

“classpath:/HETA -INF/resources/”,

"classpath:/resources/",

"classpath:/static/"

"classpath:/public/"

“/”:当前项目的根路径

都会在这个文件夹查找内容

这几个路径都可以访问静态资源

把实验包asserts导入到static中

运行后进行访问

"/":当前项目的根路径

localhost:8080/abc === 去静态资源文件夹里面找abc

localhost:8080/asserts/js/Chart.min.js

访问这个路径

8.欢迎页;静态资源文件夹下的所有index.html页面;被"/**"映射;8.欢迎页;静态资源文件夹下的所有index.html页面;被"/**"映射;

//配置欢迎页的映射

@Bean

public welcomePageHandlerMapping welcomePageHandlerMapping(

ResourceProperties resourceProperties){

return new WelcomePageHandlerMapping (resourceProperties.getwelcomePage(),

this.mvcProperties.getStaticPathPattern());

访问localhost:8080/找index页面

默认访问8080会报错404

在public包中创建一个HTML文件

<!DOCTYPE htm1>

<htm1 lang="en">

<head>

<meta charset="UTF-8">

<title>Title</title>

</head>

<body>

<h1>首页</h1>

</body>

</htm1>

然后继续访问localhost:8080就会显示HTML文件中内容了,叫做默认首页映射

9.所有的**/favicon.ico都是在静态资源文件下找

配置自己最喜欢的图标

@Configuration

@ConditionalOnProperty(value = "spring.mvc.favicon.enabled",matchIfNissing = true

public static class Faviconconfiguration {

private final ResourceProperties;

public FaviconConfiguration(ResourceProperties resourceProperties){

this.resourceProperties = resourceProperties;

}

@Bean

public simpleUrlHandlerMapping faviconHandlerMapping(){

SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();

mapping.setorder(ordered.HIGHEST_PRECEDENCE +1);

//所有**/favicon.ico

mapping.setUrlMap(collections.singletonMap("** /favicon.ico",faviconRequestHandler()));

return mapping;

}

@Bean

public ResourceHttpRequestHandler faviconRequestHandler(){

ResourceHttpRequestHandler requestHandler = new ResourceHttpRequestHandler();

requestHandler.setLocations(this.resourceProperties.getFaviconLocations());

return requestHandler;

}

}

复制实验中的图标到resources中,启动运行

在浏览器访问localhost:8080就会发现图标变resources中的图标了

这些静态映射文件夹也是可以配置的

在application.properties文件中写入

spring.resources.static-1ocations=c1asspath:/*****/*

配置静态映射文件夹

如果要多个配置,用逗号进行分割

相关文章
|
1月前
|
JavaScript 前端开发 Java
SpringBoot_web开发-webjars&静态资源映射规则
https://www.91chuli.com/ 举例:jquery前端框架
20 0
|
5月前
|
前端开发 应用服务中间件 nginx
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
|
5月前
|
前端开发 JavaScript Linux
若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
|
SQL Java 数据库连接
动态表后缀
动态表后缀
|
应用服务中间件
Servlet中的生命周期、基础配置、三种匹配规则、缺省Servlet以及路径问题
Servlet中的生命周期、基础配置、三种匹配规则、缺省Servlet以及路径问题
85 0
|
前端开发
前端学习笔记202303学习笔记第五天-私有过滤器和全局过滤器
前端学习笔记202303学习笔记第五天-私有过滤器和全局过滤器
70 0
|
数据可视化 JavaScript 开发者
过滤器-定义格式化时间的全局过滤器|学习笔记
快速学习过滤器-定义格式化时间的全局过滤器
108 0
过滤器-定义格式化时间的全局过滤器|学习笔记
|
安全 Java 开发者
路由访问映射规则|学习笔记
快速学习路由访问映射规则
|
XML 开发框架 前端开发
创建 JavaWeb 应用(静态和动态)| 学习笔记
快速学习创建 JavaWeb 应用(静态和动态),介绍了创建 JavaWeb 应用(静态和动态)系统机制, 以及在实际应用过程中如何使用。
|
Java API 开发者
Gateway全局过滤使用方法|学习笔记
快速学习Gateway全局过滤使用方法