Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在本地主机上运行angular project时,我可以为我的网站键入任何url,但在apache服务器上我可以';T_Angular_Url Routing_Angular Routing - Fatal编程技术网

在本地主机上运行angular project时,我可以为我的网站键入任何url,但在apache服务器上我可以';T

在本地主机上运行angular project时,我可以为我的网站键入任何url,但在apache服务器上我可以';T,angular,url-routing,angular-routing,Angular,Url Routing,Angular Routing,我正在本地开发机器上运行Angular 6项目,使用ng serve。例如,我有以下端点: /登录 /推车 当我的项目在localhost:4200上运行时,我可以键入以下任意内容,并且它们都有效(浏览器将成功加载相应的页面): 本地主机:4200 本地主机:4200/登录 本地主机:4200/购物车 但是,当我构建dist文件夹并将内容推送到我的生产服务器时,我尝试通过相同的URL访问该站点,但它不起作用: --工作 ”“不行 ”“不行 一个不工作的响应404未找到错误。控制台上显

我正在本地开发机器上运行Angular 6项目,使用
ng serve
。例如,我有以下端点:

  • /登录
  • /推车
当我的项目在localhost:4200上运行时,我可以键入以下任意内容,并且它们都有效(浏览器将成功加载相应的页面):

  • 本地主机:4200
  • 本地主机:4200/登录
  • 本地主机:4200/购物车
但是,当我构建dist文件夹并将内容推送到我的生产服务器时,我尝试通过相同的URL访问该站点,但它不起作用:

  • --工作
  • ”“不行
  • ”“不行
一个不工作的响应404未找到错误。控制台上显示:

加载资源失败:服务器响应状态为404(未找到)

本地开发服务器与生产服务器的行为为何不同?如何允许用户直接路由到特定的端点,如

这也将解决我的另一个问题。我添加了一个功能,如果用户实际上键入了错误的url,他们将得到404错误(正如预期的那样)。我在app-routing.module.ts文件中配置了404错误将被重定向到自定义组件。然而,这不再有效

以下是我按项目构建的方式:

ng build --configuration=staging  # --configuration=staging specifies that the build should use the staging environment listed in environments folder

文件存储在服务器上的/var/www/html文件夹中,它正在运行apache2。

如文档中所述,angular服务器必须将所有请求重定向到index.html每个服务器的配置形式


一切都必须通过index.html路由才能正常工作。请使用下面链接中的配置使其正常工作