2017-07-27 28 views
0

我有一個彈簧啓動應用程序服務我的靜態[資源/靜態]文件夾中的角度資源。我也使用相同的項目來服務我的JSON-REST-API端點。春季啓動地圖URL請求到一個靜態資源,默認不服務index.html

所以我定義我的REST API在本地主機:9090/API/... 我Angular2應用,打造的是下本地主機服務:9090/UI/...通過靜態資源

現在我想將我所有的ui/**網址轉發給ui/index.html/** 我該怎麼做?

P.S.我已經引入了一個自定義的靜態資源url模式 spring.mvc.static-path-pattern=/ui/** 然後我所有的ui/**請求都會看到static/** 這樣我就能夠保護我的/ api/**和「permitAll」ui/**請求

回答

0

這個簡單的配置可以做到這一點,如果啓用,它甚至會刷新#角2中的#路線。

@Configuration 
public class WebMvcConfiguration extends WebMvcConfigurerAdapter { 
    @Override 
    public void addViewControllers(ViewControllerRegistry registry) { 
     registry.addViewController("/ui").setViewName("forward:/ui/index.html"); 
     registry.addViewController("/ui/").setViewName("forward:/ui/index.html"); 
     registry.setOrder(Ordered.HIGHEST_PRECEDENCE); 
    } 


} 

指針: - @SpringBootApplication應註明在春季啓動的應用程序運行 - 不要有@EnableWebMvc,因爲這打破了由彈簧啓動 完成所有自動配置 - 看到這個配置是否是一個目錄下您已標記爲
@ComponentScan({「com.foo.config」}) - 此實施方案專門針對您定義了自定義spring.mvc.static路徑模式的情況定製[ui /]