2017-01-04 23 views
4

我正面臨一個奇怪的問題,試圖將我的Angular2應用程序部署到tomcat8。將Angular2應用程序部署到Tomcat8 - 路由似乎不工作

首先上下文: - 我用角CLI來assit我的構建過程。 - 該應用程序完美運行在本地與服務器:NG服務 - 納克構建使我DIST/DIR所有督促ressources - 我創建了一個大口任務,爲了正確地部署應用程序到Tomcat創建一個WAR。 - 戰爭部署到Tomcat的webapps directoy

我的應用程序的URI是這樣的:HTTPS:\ www.myexample.com \ MYAPP \

首頁URI是可以正常使用; 嘗試使用Angular2路由時,問題就開始了;例如 https:\ www.myexample.com \ myapp \ myroute。

雄貓認爲它是一種新的Web應用程序目錄,並且不使做任何HTTPS轉發:\ www.myexample.com \ MYAPP \ index.html在

我見過幾個帖子談論這種行爲,但至今;我還沒有看到任何解決方案。

有沒有人有線索/知道如何才能解決這個問題就tomcat8正常運行我的angular2應用程序?

感謝您的支持。

+2

嘗試增加'RouterModule.foRoot(useHash:真)'。如果它以這種方式工作,則需要將服務器配置爲支持HTML5 pushState。 –

+0

請將此添加爲答案,因爲它可以節省我的一天@GünterZöchbauer – aorfevre

+0

如果shussons回答有助於隨時接受他的話。 –

回答

3

你需要重寫的網址,以便index.html除非該目錄或文件是否存在。

配置Tomcat使用重寫閥https://tomcat.apache.org/tomcat-8.0-doc/rewrite.html

然後像下面添加一些東西到rewrite.config文件:

# If dir or asset exists go to it 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
RewriteRule^- [L] 
# Rewrite all other urls to use index.html 
RewriteRule^/index.html 
+0

我應該在哪裏放置rewrite.config? – Superbyte

+0

有沒有辦法在Java控制器中執行此服務器端?我想我有類似的問題,我的應用程序在ng服務器上運行良好,但是當我將它捆綁在一場戰爭中時,如果涉及諸如/ home或/ inbox的路線,則瀏覽器刷新停止工作。如果有涉及的路線,我會得到一個404瀏覽器刷新。如果我在應用中點擊,路由工作正常。謝謝 – user2748659

相關問題