簡體   English   中英

在 Spring Boot MVC 中為靜態文件提供服務的 URL 路徑的默認資源處理程序

[英]Default resource handler for an URL path serving a static file in Spring Boot MVC

我有一個基於 Spring Boot 的項目(基於spring-boot-starter-parentspring-boot-starter-web ,我想在其中提供靜態內容(內置在另一個模塊中,並使用maven-resources-plugin復制到項目中) maven-resources-plugin )。

使用默認配置/約定,它會在 misc 中查找靜態內容。 位置,如classpath:/staticclasspath:/public ,如果要從根 URL 提供靜態內容,這很有用,但對於本項目而言並非如此。

我想通過從WebMvcConfigurer (並用@Configuration注釋該類)並覆蓋public void addResourceHandlers(ResourceHandlerRegistry registry)方法成功地完成/web/服務; registry.addResourceHandler("/web/**").addResourceLocations("classpath:/static/web/");

這在顯式引用/web/文件夾中的文件名時有效,但我無法弄清楚如何模擬“默認文檔”行為,例如應該為/web/提供index.html 如果您將index.html放在靜態內容的根目錄之一中,它將由WelcomePageHandlerMapping處理。

找到解決辦法; 我還必須覆蓋addViewControllers()以創建顯式映射並修復優先級:

@Override
public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/web/").setViewName("index.html");
    registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM