springboot开发静态资源

springboot开发静态资源

一、web开发的静态文件

1.静态资源映射规则:

@ConfigurationProperties(prefix = "spring.resources",ignoreUnknownFields = false)
public class ResourceProperties implements ResourceLoaderAware{
    
}

自动配置源码解析:

WebMvcAuotConfiguration:
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
if (!this.resourceProperties.isAddMappings()) {
    logger.debug("Default resource handling disabled");
    return;
} 

Integer cachePeriod = this.resourceProperties.getCachePeriod();

if (!registry.hasMappingForPattern("/webjars/**")) {
    customizeResourceHandlerRegistration(
    registry.addResourceHandler("/webjars/**")
    .addResourceLocations(
    "classpath:/META‐INF/resources/webjars/")
    .setCachePeriod(cachePeriod));
} 

String staticPathPattern = this.mvcProperties.getStaticPathPattern();
//静态资源文件夹映射
if (!registry.hasMappingForPattern(staticPathPattern)) {
    customizeResourceHandlerRegistration(
    registry.addResourceHandler(staticPathPattern)
    .addResourceLocations(
    this.resourceProperties.getStaticLocations())
    .setCachePeriod(cachePeriod));
}
} 

//配置欢迎页映射
@Bean
public WelcomePageHandlerMapping welcomePageHandlerMapping(
ResourceProperties resourceProperties) {
    return new WelcomePageHandlerMapping(resourceProperties.getWelcomePage(),
    this.mvcProperties.getStaticPathPattern());
}

//配置喜欢的图标
@Configuration
@ConditionalOnProperty(value = "spring.mvc.favicon.enabled", matchIfMissing = true)
public static class FaviconConfiguration {

private final ResourceProperties 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;
}
}

2.前端依赖导入位置问题:比如jquery、Bootstrap、AngularJS等等前端框架包

前端资源包点击此处—>https://www.webjars.org/

  1. webjars:以jar包的方式引入静态资源
  2. 所有/webjars/**,都去classpath:/META-INF/resources/webjars/路径下找前端资源
  3. 直接从静态文件包名开始访问:localhost:8080/webjars/jquery/3.3.1/jquery.js
  4. 引入方式:直接在项目的pom文件下引入webjars下面资源名称即可;例:引入jquery
<dependency>
    <groupId>org.webjars</groupId>
    <artifactId>jquery</artifactId>
    <version>3.3.1</version>
</dependency>

3.静态资源映射位置

1."classpath:/META-INF/resources/",
2."classpath:/resources/",
3."classpath:/static/",
4."classpath:/pulic/"
5."/" :当前项目的根路径

如访问:
localhost:8080 ==== 默认访问静态资源文件夹下的index.html文件
localhost:8080/bac ==== 去静态资源文件夹下找abc文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值