我想把Angular 2应用部署到Apache服务器。已经按照网上的几篇教程部署,都不成功。服务器上安装了npm和ng。
在nutshell中,做了如下操作:
1. 完整克隆整个Angular项目到服务器上
2. 使用npm install安装依赖
3. 执行ng build –prod命令,生成了dist目录
4. 更改apache根目录到/var/www/html/dist目录
5. 启用mod_rewrite,重启apache并在dist目录添加.htaccess文件,内容如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
不过仅是主页domain.com正常,其它页面像domain.com/login,domain.com/register等抛出了404错误。甚至是domain.com/index.html/login也是一样。
这个应用是我的本地系统使用ng serve时是正常的。这是哪里错了?
在/etc/apache2/sites-enabled/000-default.conf添加如下内容并重启apache
<Directory "/var/www/html/dist">
AllowOverride All
</Directory>