Angular - 构建内部路由后不工作 - 404 错误
Angular - After Build Inner Routing Not Working - 404 Error
我正在使用 Angular 9.0,在 ng serve -o
模式下一切正常,但是当我尝试使用 ng build
构建项目时,我只能查看根页面。当我尝试转到任何其他页面时,出现 returns 404 错误,这是我在本地 ng serve
模式下没有遇到的。有关如何解决此问题的任何线索?
所以http://www.example.com/<<这个页面打开正常但是
http://www.example.com/dashboard returns 404
编辑:
为了测试不同的场景,查看可能导致问题的原因,我设法确定了问题所在。如果我使用 routerLink,导航工作正常,但如果我使用 href 或 window.location.href,它就不起作用。知道为什么在使用 href 或 window.location.href 时它会崩溃吗?
ng serve
自动处理 URL 重定向到 index.html
.
在您的 app.module.ts
中添加以下内容应该可以解决您的问题。
import { PathLocationStrategy, LocationStrategy } from '@angular/common';
...
providers: [ { provide: LocationStrategy, useClass: PathLocationStrategy } ]
https://angular.io/api/common/PathLocationStrategy
编辑:
href is the default attribute provided by browsers for navigating (switching) between pages, where the entire page will be get re-loaded losing the current state.
A more detailed explanation on href vs routerLink.
因此,如果您将文件托管在 Apache 服务器上,它会尝试在 /dashboard
目录中查找不存在的 index.html
文件,因此会出现 404 错误。
要解决此问题,您必须将所有流量重写回 index.html
。
A more detailed explanation on rewrites.
我正在使用 Angular 9.0,在 ng serve -o
模式下一切正常,但是当我尝试使用 ng build
构建项目时,我只能查看根页面。当我尝试转到任何其他页面时,出现 returns 404 错误,这是我在本地 ng serve
模式下没有遇到的。有关如何解决此问题的任何线索?
所以http://www.example.com/<<这个页面打开正常但是 http://www.example.com/dashboard returns 404
编辑: 为了测试不同的场景,查看可能导致问题的原因,我设法确定了问题所在。如果我使用 routerLink,导航工作正常,但如果我使用 href 或 window.location.href,它就不起作用。知道为什么在使用 href 或 window.location.href 时它会崩溃吗?
ng serve
自动处理 URL 重定向到 index.html
.
在您的 app.module.ts
中添加以下内容应该可以解决您的问题。
import { PathLocationStrategy, LocationStrategy } from '@angular/common';
...
providers: [ { provide: LocationStrategy, useClass: PathLocationStrategy } ]
https://angular.io/api/common/PathLocationStrategy
编辑:
href is the default attribute provided by browsers for navigating (switching) between pages, where the entire page will be get re-loaded losing the current state.
A more detailed explanation on href vs routerLink.
因此,如果您将文件托管在 Apache 服务器上,它会尝试在 /dashboard
目录中查找不存在的 index.html
文件,因此会出现 404 错误。
要解决此问题,您必须将所有流量重写回 index.html
。
A more detailed explanation on rewrites.