我想弄清楚如何設置Apache Tomcat服務器來爲角度應用程序提供深層鏈接。例如:在Apache Tomcat 404深度鏈接上部署角度應用程序問題
靜態服務器在收到mysite.com/的請求時,會定期返回index.html。但它拒絕mysite.com/heroes/42並返回一個404 - Not Found錯誤,除非它被配置爲返回index.html。
我想要服務於localhost /角,我試圖角應用以下:
1)建立的角應用與:
ng build --prod --base-href .
2)複製生成文件夾的內容(默認值:DIST)到$ ApacheLocation/web應用/角
3)$ ApacheLocation/CONF /卡塔利娜/本地主機/ rewrite.config添加的RewriteRules
# If an existing asset or directory is requested go to it as it is
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule^- [L]
# If the requested resource doesn't exist, use index.html
RewriteRule ^\/angular\/.*$ /angular/index.html
4)添加閥略低於主機標籤
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.rewrite.RewriteValve"/>
5)啓動Tomcat服務器和去到localhost /角度會給我:
未捕獲的SyntaxError:意外的標記<所有的.js包(例如main.bundle.js)
如果我不包含重寫規則,tomcat將按預期提供localhost/angular ,但會在深層鏈接上提供404。
我的設置配置:
- Tomcat的版本9.0.0.M26
- 角版本4.4.2
- @角/ CLI:1.4.2
- 節點:8.5。 0
- npm:5.4.2
- os:linux x64
我有這個問題,我知道如何解決這個問題,只是留下你的**索引.html **內容和你想放置你的項目的路徑。然後我會留下一個答案,只需回答我,當你完成那 –
這裏是測試項目的完整鏈接:https://github.com/avuletica/test嘗試在localhost/angular @valakhosravi上託管它 –
我想查看你的** dist **文件夾(在' ng build --prod --base-href')。 –