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:/*****/*

配置静态映射文件夹

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

相关文章
|
8月前
|
缓存
node中的优先从缓存中加载模块与模块的加载规则
node中的优先从缓存中加载模块与模块的加载规则
|
6月前
|
搜索推荐 网络架构 开发者
Next.js静态出口生成策略深度解析
【7月更文挑战第18天】Next.js凭借其强大的静态生成、静态出口生成以及服务器端渲染功能,为开发者提供了构建高性能、高SEO友好Web应用的强大工具。
|
6月前
|
存储 数据库 索引
面试题ES问题之动态映射的定义如何解决
面试题ES问题之动态映射的定义如何解决
44 1
xxlsso框架设置不需要过滤的路径
xxlsso框架设置不需要过滤的路径
48 0
|
SQL Java 数据库连接
动态表后缀
动态表后缀
|
应用服务中间件
Servlet中的生命周期、基础配置、三种匹配规则、缺省Servlet以及路径问题
Servlet中的生命周期、基础配置、三种匹配规则、缺省Servlet以及路径问题
90 0
|
XML Dubbo 应用服务中间件
超时&amp;配置覆盖关系|学习笔记
快速学习超时&amp;配置覆盖关系
超时&amp;配置覆盖关系|学习笔记
|
搜索推荐
rpcms配置自定义伪静态规则的方法
rpcms默认自带有伪静态规则,可以直接使用,但会千篇一律。如果根据自己需求,个性化的自定义伪静态规则就舒服了。如何去配置呢? 在/setting/route/index.php文件中,这个文件就是默认的伪静态规则,可以在这里面去修改规则。如何配置呢?规则采用的是数组方式配置,含有四个元素: model:模块路径,格式:应用/控制器/方法;pattern:自定义的路由规则;replace:变量规则;ext:后缀名,支持多个,未配置则默认html。
配置静态和动态
介绍: 静态nat 和 动态nat 的配置 静态nat 配置步骤 第一步 配置接口地址 第二步 配置静态地址转换 ip nat inside source static 内部私有地址 转换之后的公网地址 动态nat 配置步骤 第一步 配置接口地址 第二步 配置标准acl 指定需要转换的多个内部主机地址 access-list 编号 permit 网段地址 子网掩码反码 第三步 配置 转换后的公网地址地址池 ip nat pool 地址池名字 起始地址 结束地址 子网掩码 第四步 配置动态地址
183 0
|
安全 Java 开发者
路由访问映射规则|学习笔记
快速学习路由访问映射规则