我正在EC2实例上部署Angular 4应用程序。我使用ng build --prod
编译了应用程序,并将dist
目录的内容移动到/var/www/html
。此外,我已使用sudo service httpd start
启动了Web服务守护程序。网页有效,但我只能通过主页访问路线。
例如我可以:
http://my-page.com/dashboard
只有先访问
http://my-page.com
然后单击仪表板按钮。但是,我无法通过在角度开发环境(Angular CLI服务器)中导航到http://my-page.com/dachboard
来直接访问应用程序的这一部分。
我想知道这是否可行,以及如何实现这一目标。我尝试解决此问题的步骤是
mod_proxy
并将RewriteEnging On
和ProxyPass * http://my-page.com/
添加到ProxyPassReverse * http://my-page.com/
文件httpd.conf
AllowOverride All
添加到httpd.conf
文件.htaccess
以允许RewiteEngine。答案 0 :(得分:0)
查看描述如何在Apache上部署Angular应用程序的this article。您错过的步骤是添加:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
到.htaccess
并添加
<Directory "/var/www/html">
AllowOverride All
</Directory>
到<VirtualHost *:80>
文件的/etc/httpd/conf/httpd.conf
部分。这应该可以解决问题。