我成功地將我的Angular2應用程序與Spring Boot後端之後的this tutorial集成,將編譯後的JS資源放置到/ ui子目錄中。基本上一切正常,Angular2應用程序可通過appname/ui URL訪問。同一臺服務器上的Spring Boot + Angular2
不過,我想知道是否有一種方式來告訴Spring「直通」的網址,該/UI路徑的孩子,按照目前的春天攔截每一個請求針對/UI/* ,阻止Angular2路由器正確導航到路徑下的資源。
目前,我只有這個映射在我的控制器之一:
@RequestMapping(value = "/ui")
public String uiIndex() {
return "/ui/index.html";
}
這樣,接口正確的/UI顯示出來,但春天送我的錯誤和404的一切在它之下, 當我直接從瀏覽器解決它們。儘管Angular2應用程序內部的路由器導航工作正常。
編輯
我是從目標/ UI靜態/ UI文件夾中添加編譯Angular2資源與這一配置(我的項目使用Maven構建):
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<includes>
<include>*.properties</include>
<include>templates/*.*</include>
</includes>
</resource>
<resource>
<directory>target/ui</directory>
<targetPath>static/ui</targetPath>
</resource>
至於要清楚,唯一的問題是,當我在諸如/ui/home/settings之類的瀏覽器中輸入URL時,Spring攔截請求並拋出錯誤。不過,我可以愉快地導航到/ ui,然後導航到Angular上下文中的/ home/settings。
Spring引導應用程序中靜態資源的標準位置在src/main/resources/static下。只要把你的Angular資源放在那裏,Spring Boot就會爲他們服務。 –
您可能需要一個以'/ **'結尾的映射。 – chrylis
你見過https://github.com/spring-guides/tut-spring-security-and-angular-js/blob/master/modular/README.adoc嗎? – EpicPandaForce