其他分享
首页 > 其他分享> > SpringBoot Web开发_静态资源的映射规则

SpringBoot Web开发_静态资源的映射规则

作者:互联网

1)、所有 /webjars/** ,都去 classpath:/META-INF/resources/webjars/ 找资源;

webjars:以jar包的方式引入静态资源;
在这里插入图片描述

<!‐‐引入jquery‐webjar‐‐>在访问的时候只需要写webjars下面资源的名称即可
<dependency>        
	<groupId>org.webjars</groupId>            
	<artifactId>jquery</artifactId>            
	<version>3.3.1</version>            
</dependency> 

2)、"/**" 访问当前项目的任何资源,都去(静态资源的文件夹)找映射

"classpath:/META‐INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
"/":当前项目的根路径

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

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

localhost:8080/ 找index页面

4)、所有的 **/favicon.ico 都是在静态资源文件下找;

@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;                
		}            
	} 

标签:Web,webjars,SpringBoot,映射,静态,classpath,resourceProperties,public,resources
来源: https://blog.csdn.net/zeroheitao/article/details/110477571