小编典典

Angular 2:当我通过浏览器刷新时出现 404 错误

all

我是 Angular 2 的新手。我已将我的单页应用程序存储在我的服务器中名为“myapp”的文件夹中。我已将基础中的 URL
更改为http://example.com/myapp/`

我的项目有两页。所以我实现了 Angular 2
路由。我将默认页面设置为登录。当我http://example.com/myapp/在浏览器中输入时,它会自动重定向到http://example.com/myapp/login.
但是如果刷新那个页面我会得到一个404错误,说http://example.com/myapp/login没有找到。

但是,如果我使用 lite 服务器运行我的项目,一切正常。在这种情况下,index.html 中的基本 URL 将是"/". 如何修复它?


阅读 67

收藏
2022-06-14

共1个答案

小编典典

事实上,刷新应用程序时出现 404 错误是正常的,因为浏览器中的实际地址正在更新(并且没有 # / hashbang 方法)。默认情况下,HTML5
历史记录用于在 Angular2 中重用。

要修复 404 错误,您需要更新服务器以为index.html您定义的每个路由路径提供文件。

如果要切换到 HashBang 方式,需要使用这个配置:

import {bootstrap} from 'angular2/platform/browser';
import {provide} from 'angular2/core';
import {ROUTER_PROVIDERS} from 'angular2/router';
import {LocationStrategy, HashLocationStrategy} from '@angular/common';

import {MyApp} from './myapp';

bootstrap(MyApp, [
  ROUTER_PROVIDERS,
  {provide: LocationStrategy, useClass: HashLocationStrategy}
]);

在这种情况下,当您刷新页面时,它会再次显示(但您#的地址中会有一个)。

2022-06-14