【问题标题】:Angular project problem with routing in production生产中路由的角度项目问题
【发布时间】:2019-10-14 22:55:59
【问题描述】:

我已经开发了一个有角度的网站:在我的 localhost:4200 中运行的测试中一切正常,但是当我将网站上传到我的服务器时,我的导航遇到了一个大问题:

这是我的路线

const routes: Routes = [
  { path: ':id/main', component: MainComponent }
];

如您所见,如果我运行https://localhost:4200/test/main,我实际上可以在localhost:4200 中使用参数访问“MainComponent”:我访问主组件但是当我输入http://mywebsite/test/main 时,我得到一个404 页面而不是成立。 我该如何解决?

【问题讨论】:

  • 需要在服务端配置,将所有404请求重定向到index.html。因为所有的导航都是在客户端进行的,当在浏览器中输入 URL 时,它会在服务器中命中并最终进入 404 页面

标签: angular routing production


【解决方案1】:

如果应用使用 Angular 路由器,您必须将服务器配置为 在被要求提供文件时返回应用程序的主机页面 (index.html) 它没有。

点击电子邮件中的链接,在浏览器地址栏中输入, 或者只是在英雄详情页面上刷新浏览器——全部 这些操作中的一部分由浏览器本身处理,在 运行应用程序。浏览器直接向服务器发出请求 对于该 URL,绕过路由器。

静态服务器在收到一个 请求http://www.sample.org/。但它拒绝 http://www.sample.org/heroes/42 并返回 404 - Not Found 错误 除非它被配置为返回 index.html。

有关配置serverm的更多信息,请访问angular documentation site

【讨论】:

  • 所以如果我添加“{ path: '', component: AppComponent}”,这就是我的路由中的索引负载应该起作用的吗?
  • 没有。您在哪个服务器上托管您的应用程序?
  • 托管在 Aruba
猜你喜欢
  • 2014-11-10
  • 1970-01-01
  • 1970-01-01
  • 2018-02-13
  • 1970-01-01
  • 2020-05-21
  • 2017-04-06
  • 2021-11-12
  • 1970-01-01
相关资源
最近更新 更多