我是 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没有找到。
http://example.com/myapp/
http://example.com/myapp/login
404
但是,如果我使用 lite 服务器运行我的项目,一切正常。在这种情况下,index.html 中的基本 URL 将是"/". 如何修复它?
"/"
事实上,刷新应用程序时出现 404 错误是正常的,因为浏览器中的实际地址正在更新(并且没有 # / hashbang 方法)。默认情况下,HTML5 历史记录用于在 Angular2 中重用。
要修复 404 错误,您需要更新服务器以为index.html您定义的每个路由路径提供文件。
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} ]);
在这种情况下,当您刷新页面时,它会再次显示(但您#的地址中会有一个)。
#