springboot升級2.0,導致全部js、css無法加載

首頁效果:
在這裏插入圖片描述
於是在代碼裏面尋找原因,難道是靜態資源目錄寫的有問題?
在這裏插入圖片描述
Spring Boot的默認配置方式,提供的靜態資源映射如下:

  1. classpath:/META-INF/resources
  2. classpath:/resources
  3. classpath:/static
  4. classpath:/public

根據以上靜態資源配置比對項目也沒有任何問題,那問題出在哪裏?百思不得其解,但是還得繼續尋找問題的根源。

既然靜態資源配置沒有問題,難道是被攔截器攔截了?打開WebMvcConfig文件,如圖:
在這裏插入圖片描述
由於WebMvcConfigurerAdapter過期,開始使用WebMvcConfigurationSupport,別的代碼完全一樣。於是有個想法先將代碼修改爲如下:
在這裏插入圖片描述
此時奇蹟發生了,頁面正常顯示:

在這裏插入圖片描述
那麼問題來了:繼承WebMvcConfigurationSupport如何解決js、css無法加載呢?

又是一番尋找,終於發現了線索:
是因爲springboot 2.0配置WebMvcConfigurationSupport之後,會導致默認配置被覆蓋,要訪問靜態資源需要重寫addResourceHandlers方法,於是只需要添加如下代碼就可完美解決.

@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/**").addResourceLocations("classpath:/resources/")
				.addResourceLocations("classpath:/static/").addResourceLocations("classpath:/public/");
		super.addResourceHandlers(registry);
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章