我已经使用@RouteConfig创建了一个示例应用程序,它工作得很好。根据配置看到url的变化和添加的视图,但当我刷新页面时,它显示404错误。
我正在使用WebStorm集成开发环境来构建和运行应用程序。
同样的问题也发生在angular.io上给出的实例中。
我已经下载了在https://angular.io/resources/live-examples/router/ts/plnkr.html上的AngularJS2中路由和导航的示例代码示例,它在angular.io上提供,并在WebStorm中打开项目并运行它。
它工作得很好,但在进行了一些路由之后,刷新了页面,它显示了一个404错误。
发布于 2016-01-14 06:06:36
Angular 2(默认情况下)使用html5 pushState表示路由器状态。这意味着实际url在状态之间改变。
例如,对于主页,你可能在url:/中点击了什么,你的地址就变成了/newAddress。这是使用pushState api和纯前端完成的。但是,如果您刷新页面,服务器会尝试在/newAddress上呈现资源,但是,当然,服务器上没有这样的资源。你需要配置你的服务器来托管/,不管url是什么,但我不知道这在WebStorm内部服务器中是否可行。您可以安装和使用superstatic npm package。
或...您可以将Angular 2配置为使用基于散列的urls (如/#/和/#/newAddress)。这样,从后端的角度来看,你每次都会访问/。
This page有详细的解释。
发布于 2016-01-14 06:11:00
确保您包含了一个
<base href="/">在你的头部。除此之外,我们还需要更多的信息。
发布于 2016-04-07 21:12:19
这将解决您的问题,将此添加到您的引导程序中
从‘angular2/platform/browser’导入{bootstrap};
import {provide} from 'angular2/core';
bootstrap(AppComponent,[ROUTER_PROVIDERS,
provide(LocationStrategy, { useClass: HashLocationStrategy })]);现在,每当您执行刷新或硬重新加载时,都会加载在@RouteConfig中定义的默认组件。
在您的AppComponent中:
@RouteConfig([
{path: '/login', name : 'Login' , component : Login , useAsDefault: true}
])https://stackoverflow.com/questions/34677250
复制相似问题