2015-02-10 92 views
17

我有static文件夾結構如下:春天開機不夾請求映射到`index.html`文件

的index.html
文檔/ index.html的

春天引導正確/index.html映射請求。不過,這並不映射/docs/請求/docs/index.html/docs/index.html要求正常工作)。

如何映射文件夾/子文件夾請求到適當的index.html文件?

+0

是否視圖控制器映射我建議回答你的問題?如果是這樣,請接受它。否則,請澄清您的問題,我很樂意更新我的答案。 – hzpz 2016-03-21 13:29:19

回答

2

這不是春天啓動映射的index.html它的servlet引擎(這是一個歡迎頁面)。只有一個歡迎頁面(按照規範),目錄瀏覽不是容器的一項功能。

+5

這解釋了這個問題,但沒有提出解決方案,所以我不能接受這個答案 – 2015-02-11 12:09:26

+1

我不認爲除了編寫自己的目錄瀏覽器servlet處理程序之外,還有其他解決方案。我可以建議,如果你喜歡? – 2015-02-11 17:58:38

18

您可以手動添加一個視圖控制器映射,使這項工作:

@Configuration 
public class CustomWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter { 

    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/docs").setViewName("redirect:/docs/"); 
     registry.addViewController("/docs/").setViewName("forward:/docs/index.html"); 
    super.addViewControllers(registry); 
    } 
} 

第一映射導致的Spring MVC如果/docs(沒有斜線)被請求重定向發送到客戶端。如果您在/docs/index.html中有相關鏈接,則這是必需的。第二映射轉發到/docs/內部的任何請求(不發送重定向到客戶端)在docs子目錄到index.html

+0

也適用於嵌套子文件夾:'registry.addViewController(「/ v2/docs」).setViewName(「redirect:/ v2/docs /」);''和'registry.addViewController(「/ v2/docs /」)。 setViewName( 「正向:/v2/docs/index.html」);' – 2018-02-19 11:48:26

0

春天開機默認顯示的index.html。

但index.html的應該是 /資源 /靜態或 /公共

例如:

https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-web-static