我是新来的.我已将我的单页应用程序存储在服务器中名为"myapp"的文件夹中.我已经把基地的网址改成了http://example.com/myapp/`.

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

但是如果我使用lite服务器运行我的项目,一切都正常.在本例中,是索引中的基本URL.html将是"/".你怎么修?

推荐答案

事实上,刷新应用程序时出现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}
]);

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

这个链接也可以帮助你:When I refresh my website I get a 404. This is with Angular2 and firebase.

希望对你有帮助,

Angular相关问答推荐

当try 使用Angular和PrimeNg手动聚焦输入时,我做错了什么?

基于另一个控制值显示值的Angular 数组

如何使用ANGLING HTTP.POST并将类型更改为键入的回复?

AOS-如何在向上滚动时不再次隐藏元素

@ngrx/调度时未定义存储操作

属性';apiUrl';在我的Angular 应用程序上不存在类型';{}';错误

npm install命令在基本Angular 应用程序的天蓝色构建管道中失败

有角.服务.模块构建失败.无法读取未定义的属性(读取文件)

ngRouterOutlet和组件生命周期使用自定义模板渲染的问题

如何在 Angular14 中创建带有验证的自定义输入组件?

检测父元素是否绑定到 Angular 中的子元素 @Output

Summernote 文本区域的输入字段文本验证失败

如何以Angular 改变环境

我想将一个对象传递给一个子组件.我做了一切,但没有任何效果. (Angular )

使用 RxJS forkJoin 时传递参数的最佳方式

rxjs 这种常见的状态管理模式有名称吗?它有限制吗?

无法推送 Angular 项目 - Github

AOT - Angular 6 - 指令 SomeComponent,预期 0 个参数,但go 有 1 个参数

ngx-toastr,Toast 未在 Angular 7 中显示

交替行 colored颜色 angular material表