Angularjs ng内置Angular 2 Cli应用程序构建后,刷新显示404错误
我已成功创建并运行angualr2 cli应用程序。我还将应用程序部署在apache服务器上,为此,我使用angular2 cli命令Angularjs ng内置Angular 2 Cli应用程序构建后,刷新显示404错误,angularjs,apache,angular2-cli,Angularjs,Apache,Angular2 Cli,我已成功创建并运行angualr2 cli应用程序。我还将应用程序部署在apache服务器上,为此,我使用angular2 cli命令ng build 但是我的应用程序在刷新子页面时关闭(404页面未找到错误) 请执行以下步骤,您将意识到我提到的问题 现在单击作业侧栏菜单或任意或侧栏元素 然后刷新页面 你会看到我的问题的。页面消失,显示404错误。为什么在部署到apache服务器后会发生这种情况。当我使用ngserve命令运行服务器时,刷新可以在开发环境()上完美工作,我已经解决了以下问题。这
ng build
但是我的应用程序在刷新子页面时关闭(404页面未找到错误)
请执行以下步骤,您将意识到我提到的问题
你会看到我的问题的。页面消失,显示404错误。为什么在部署到apache服务器后会发生这种情况。当我使用
ngserve
命令运行服务器时,刷新可以在开发环境()上完美工作,我已经解决了以下问题。这在我的配置中没有错。问题是在服务器设置中添加.httaccess和允许重写规则
我总结了解决此问题的步骤
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
就这样!!任何链接都会重定向到my index.html并正常工作。因为所有路由都是从angular2路由中的index.html路由,所以这里有一个IIS服务器的解决方案
<Directory "/var/www/html">
AllowOverride All
</Directory>
<!-- configure the site to work with HTML5 push state -->
<rewrite>
<rules>
<rule name="AngularJS Routes" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
</conditions>
<action type="Rewrite" url="/" />
</rule>
</rules>
</rewrite>