1. 程式人生 > >SpringBoot遇到的問題--無法請求html等靜態資原始檔,webapp或者resources/static

SpringBoot遇到的問題--無法請求html等靜態資原始檔,webapp或者resources/static

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