【问题标题】:Angular 8 - build production routes doesn't workAngular 8 - 构建生产路线不起作用
【发布时间】:2020-11-26 19:42:03
【问题描述】:

您好,我正在 Angular 8 中部署一个应用程序,当我在 dev 中工作时,即使路由也一切正常,但是当我运行“ng build --prod”时,它会在 /dist 中生成构建并上传应用程序到服务器,索引工作正常,但是当我对页面执行 href(例如:/login)时,我找不到页面。

这是我的路线

const routes: Routes = [
  { path: '', component: FullIndexComponent },
  { path: 'login', component: FullLoginComponent }
];

这只发生在生产构建中,我需要上传构建,因为我正在使用 cpanel。

谢谢

【问题讨论】:

  • 您在后端使用了哪种技术?你如何捆绑你的前端和后端?我很确定问题是路由是由后端解释的而不是角度的,您可以通过将所有未映射的 API 调用重定向到 index.html 在后端解决这个问题
  • 在后端,我使用的是 express.js,它们根本没有关系,前端在 Agular 8 中,api 运行良好,问题是路由,正如您在问题我在文件 app-routing.module.ts 中声明了路由,它们在开发中工作正常,但在生产中没有。如果你有任何想法,你能告诉我怎么做吗?
  • @YeisonM 问题不在于路由,正如 h0ss 所说,问题在于您的后端服务器配置,需要重定向到index.html
  • @YeisonM 在你的后端试试这个,它会解决你的问题stackoverflow.com/questions/26349497/…
  • 谢谢,但后端与前端位于不同的服务器中,甚至位于不同的端口中。我不能使用API​​方式,我认为Angular可以自己工作

标签: angular


【解决方案1】:

我解决了路线问题

<li><a class="btn button_menu" routerLink="/login">Acceder</a></li>

而不是

<li><a class="btn button_menu" href="/login">Acceder</a></li>

以及在app-routing.module.ts中刷新配置useHash的问题,如下:

imports: [RouterModule.forRoot(routes, {useHash: true})],imports: [RouterModule.forRoot(routes, {useHash: true})],

【讨论】:

    猜你喜欢
    • 2018-07-23
    • 2020-09-24
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 2021-12-07
    • 1970-01-01
    相关资源
    最近更新 更多