angular - 部署后从 URL 中删除 # 不起作用 - HTTP 404

标签 angular spring-boot seo url-routing

我正试图摆脱我的 Angular 应用程序中的 #-red URL(Google recommends it,如果您的应用程序在第一次加载时不显示可索引的内容)。 Web 应用程序位于我的 Spring Boot 应用程序的 static/ 目录中。

所以我禁用了#:

export const AppRouting = RouterModule.forRoot(routes, {
  useHash: false,
  enableTracing: false
});

在我的本地机器上一切正常,例如

http://localhost:4200/cars/berlin

列出柏林的所有汽车,但是

http://www.example.com/cars/berlin

在部署站点后给我 HTTP 404。

我不确定为什么会这样。我该如何解决这个问题?

但是,根 URL http://example.com 工作正常。显示了网站内容,但无法访问以下任何页面。

最佳答案

您需要在您的网络服务器中配置 URL 重写。不同的网络服务器的配置是不同的。在 url 中使用 # 告诉 Angular 主页 url 的开始,SPA 逻辑使用它工作。没有 # Angular 无法检测到主页开始。所以你需要在网络服务器配置中配置它。

关于angular - 部署后从 URL 中删除 # 不起作用 - HTTP 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53881299/

相关文章:

angular - 将 Angular CLI 构建日志保存到文件

java - 在 Spring Boot 应用程序中获取联系路径

image - 添加 og : image to specific pages in Hugo

controller - 我需要创建方法 get() 和 status() 来创建带有 mockmvc 的测试 Controller 吗?

java - Thymeleaf 说 Model 属性为 null

seo - 是否使用 onclick ='window.location' 创建的 Google 索引链接

jquery - 使 AJAX 加载的内容可供 Google 抓取

angular - 我如何使用 catchError() 并仍然返回带有 rxJs 6.0 的类型化 Observable?

angular - 进行 Angular 单元测试时出错

angular - 访问 ViewChildren 查询列表的第 n 个子项( Angular )