![](/img/trans.png)
[英]Spring Boot map URL request to a Static Resource, not serving index.html by default
[英]Default resource handler for an URL path serving a static file in Spring Boot MVC
我有一個基於 Spring Boot 的項目(基於spring-boot-starter-parent
和spring-boot-starter-web
,我想在其中提供靜態內容(內置在另一個模塊中,並使用maven-resources-plugin
復制到項目中) maven-resources-plugin
)。
使用默認配置/約定,它會在 misc 中查找靜態內容。 位置,如classpath:/static
和classpath:/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.