SpringBoot遇到的問題--無法請求html等靜態資原始檔,webapp或者resources/static
阿新 • • 發佈:2018-11-11
SpringBoot遇到的問題–無法請求html等靜態資原始檔,webapp或者resources/static
文章目錄
問題
我遇到的問題是,無法訪問靜態資原始檔,html。
檔案時放到webapp目錄下面
也有部分檔案放在resources
解決方案
未設定打包時新增至jar包
這個只要在pom.xml中的bulid節點新增:
<!-- 新增這個就可以是webapp目錄生效 --> <resources> <resource> <directory>src/main/webapp</directory> <!--注意此次必須要放在此目錄下才能被訪問到 --> <targetPath>META-INF/resources</targetPath> <includes> <include>**/**</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>**/*</include> </includes> </resource> </resources>
設定了自定義攔截器,導致靜態資源無法獲取
這個問題搞掉了我一天半的時間,
設定了攔截器,我們的靜態資源目錄需要重寫在方法裡面:
@Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/") .addResourceLocations("classpath:/resources/").addResourceLocations("classpath:/static/") .addResourceLocations("classpath:/public/"); super.addResourceHandlers(registry); }
@SpringBootApplication
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
String[] excludes = new String[] { "/static/**", "**.html", "/login.html" };
registry.addResourceHandler("/**").addResourceLocations("classpath:/META-INF/resources/")
.addResourceLocations("classpath:/resources/").addResourceLocations("classpath:/static/")
.addResourceLocations("classpath:/public/");
super.addResourceHandlers(registry);
}
}