av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

SpringBoot如何通過webjars管理靜態資源文件夾

瀏覽:46日期:2023-04-12 18:44:13

WebMvcAutoConfiguration

添加資源映射:

public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) {logger.debug('Default resource handling disabled'); } else {Duration cachePeriod = this.resourceProperties.getCache().getPeriod();CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl();if (!registry.hasMappingForPattern('/webjars/**')) { this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{'/webjars/**'}).addResourceLocations(new String[]{'classpath:/META-INF/resources/webjars/'}).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));}String staticPathPattern = this.mvcProperties.getStaticPathPattern();if (!registry.hasMappingForPattern(staticPathPattern)) { this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{staticPathPattern}).addResourceLocations(WebMvcAutoConfiguration.getResourceLocations(this.resourceProperties.getStaticLocations())).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl));} } }

所有'/webjars/**'路徑 , 都去類路徑下 classpath: /META-INF/resources/webjars/ 找資源, 所以就是

http://localhost:8080/webjars/jquery/3.5.1/jquery.js

能訪問

/META-INF/resources/webjars/jquery/3.5.1/jquery.js 路徑的文件

1) webjars: 以jar包的方式引入靜態資源

什么是webjar?

搜索webjar, 可以將jquery用pom引入:

SpringBoot如何通過webjars管理靜態資源文件夾

引入, 正好對應這個映射:

SpringBoot如何通過webjars管理靜態資源文件夾

結果是的:

SpringBoot如何通過webjars管理靜態資源文件夾

2) springboot對靜態資源的映射規則:

看代碼:

還是

WebMvcAutoConfiguration的這個方法

public void addResourceHandlers(ResourceHandlerRegistry registry) { if (!this.resourceProperties.isAddMappings()) { logger.debug('Default resource handling disabled'); } else { Duration cachePeriod = this.resourceProperties.getCache().getPeriod(); CacheControl cacheControl = this.resourceProperties.getCache().getCachecontrol().toHttpCacheControl(); if (!registry.hasMappingForPattern('/webjars/**')) { this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{'/webjars/**'}).addResourceLocations(new String[]{'classpath:/META-INF/resources/webjars/'}).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl)); } String staticPathPattern = this.mvcProperties.getStaticPathPattern(); if (!registry.hasMappingForPattern(staticPathPattern)) { this.customizeResourceHandlerRegistration(registry.addResourceHandler(new String[]{staticPathPattern}).addResourceLocations(WebMvcAutoConfiguration.getResourceLocations(this.resourceProperties.getStaticLocations())).setCachePeriod(this.getSeconds(cachePeriod)).setCacheControl(cacheControl)); } }}

進去:

WebMvcProperties

private String staticPathPattern; private final WebMvcProperties.Async async; private final WebMvcProperties.Servlet servlet; private final WebMvcProperties.View view; private final WebMvcProperties.Contentnegotiation contentnegotiation; private final WebMvcProperties.Pathmatch pathmatch; public WebMvcProperties() { this.localeResolver = WebMvcProperties.LocaleResolver.ACCEPT_HEADER; this.format = new WebMvcProperties.Format(); this.dispatchTraceRequest = false; this.dispatchOptionsRequest = true; this.ignoreDefaultModelOnRedirect = true; this.publishRequestHandledEvents = true; this.throwExceptionIfNoHandlerFound = false; this.logResolvedException = false; this.staticPathPattern = '/**'; this.async = new WebMvcProperties.Async(); this.servlet = new WebMvcProperties.Servlet(); this.view = new WebMvcProperties.View(); this.contentnegotiation = new WebMvcProperties.Contentnegotiation(); this.pathmatch = new WebMvcProperties.Pathmatch(); }

addResourceLocations(WebMvcAutoConfiguration.getResourceLocations(this.resourceProperties.getStaticLocations())) 這里添加了資源的位置

public class ResourceProperties { private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]{'classpath:/META-INF/resources/', 'classpath:/resources/', 'classpath:/static/', 'classpath:/public/'}; private String[] staticLocations; private boolean addMappings; private final ResourceProperties.Chain chain; private final ResourceProperties.Cache cache; public ResourceProperties() { this.staticLocations = CLASSPATH_RESOURCE_LOCATIONS; this.addMappings = true; this.chain = new ResourceProperties.Chain(); this.cache = new ResourceProperties.Cache(); }

'/**'訪問當前項目的任何資源, (靜態資源的文件夾) ,如果沒人處理,會默認去以下幾個文件路徑下找[/code]復制代碼 代碼如下:// 靜態資源文件夾, 這幾個都可以存放靜態資源:

classpath:/META-INF/resources/classpath:/resources/'classpath:/static/'classpath:/public/

例如 localhost:8080/a/b.js , 可以到 /META-INF/resources/a/b.js 找

SpringBoot如何通過webjars管理靜態資源文件夾

SpringBoot如何通過webjars管理靜態資源文件夾

或者:

/resources/a/b.js找:

SpringBoot如何通過webjars管理靜態資源文件夾

SpringBoot如何通過webjars管理靜態資源文件夾

或者類路徑下/static/a/b.js找:

SpringBoot如何通過webjars管理靜態資源文件夾

SpringBoot如何通過webjars管理靜態資源文件夾

或者/public/a/b.js下找

SpringBoot如何通過webjars管理靜態資源文件夾

SpringBoot如何通過webjars管理靜態資源文件夾

3)歡迎頁面: 靜態資源文件夾下的所有index.html頁面: 被 /**映射

http://localhost:8080/ 會到以上靜態資源文件夾中找index.html頁面

源碼有變化,我沒明白回頭再看

結果:

SpringBoot如何通過webjars管理靜態資源文件夾

路徑:

SpringBoot如何通過webjars管理靜態資源文件夾

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
主站蜘蛛池模板: 在线a | 色婷婷综合网 | 久精品视频 | 久久精品欧美一区 | 日韩成人一区 | 国产片一区二区 | 天天操天天操 | 久久精选视频 | 日韩毛片免费看 | 久久久久女人精品毛片九一 | 夜夜嗷| 91久久国产综合久久 | 国产一区在线观看视频 | 91成人在线视频 | 黄色一级片网站 | 黄色一级视频在线观看 | 99精品99 | 国产日韩免费 | 国产真实乱人偷精品 | 欧美成人精品一区二区三区在线看 | 九九视频免费观看 | 欧美黄色片视频 | 精品国产成人 | 欧美精品在线播放 | 国产农村女人一级毛片 | 欧美日韩少妇 | 可以看的毛片 | 亚洲乱码在线 | 日韩中文字幕精品 | 午夜免费视频 | 九九热这里 | 一区二区三区国产 | 欧美 日韩 国产 成人 在线 | 亚洲精品在线视频 | 中文字幕在线观看一区二区三区 | 久久观看 | 成人午夜网 | 久久国产精品99久久人人澡 | 亚洲精品影院 | 中文字幕无人区二 | 日韩精品视频在线播放 |