我有Spring Boot应用程序(后端),对于前端,我正在使用Angular 2单页应用程序。
每当我导航到某个路由时,例如:localhost:8080 / getAccounts,并在导航刷新后执行操作,我就会得到Whitelabel错误页面。如果我位于localhost:8080根目录下,则可以正常工作。该问题仅出现在子链接中。
(使用返回/返回按钮)返回上一页也可以正常工作。只是刷新。
我也不能直接调用链接:localhost:8080 / getAccounts。首先,我必须转到Home(localhost:8080),然后通过子导航栏调用页面。
有人有同样的问题吗?我必须改变什么特权。我的代码:
维护
import {bootstrap} from '@angular/platform-browser-dynamic'; import {AppComponent} from './components/app.component'; import {HTTP_PROVIDERS}; import {enableProdMode} from '@angular/core'; enableProdMode(); bootstrap(AppComponent, [HTTP_PROVIDERS]);
app.comonent:
import { Component, OnInit } from '@angular/core'; import { Http } from '@angular/http'; import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS } from '@angular/router-deprecated'; import { HomeComponent } from './home.component'; import { UserSearchComponent} from './webUserProfiles.component'; import { UserDetailViewComponent} from './webUserProfileView.component'; import { HTTPService } from '../service/http.service'; @Component({ selector: 'app-content', templateUrl: './app/templates/app.component.html', directives: [ROUTER_DIRECTIVES, AccessErrorComponent], providers: [ ROUTER_PROVIDERS, HTTPService ] }) @RouteConfig([ { path: '/', name: 'HomeComponent, useAsDefault: true }, { path: '/user', name: 'UserSearch', component: UserSearchComponent, }, { path: '/user/:id', name: 'UserDetailView', component: UserDetailViewComponent, } ]) export class AppComponent implements OnInit { constructor ( ) { } } }
提前致谢
经过一些研究,我从Thierry Templier那里找到了一个很好的答案
使用默认的路由策略(HTML5历史API),您需要服务器配置以将所有路径重定向到HTML入口点文件。使用hashbang方法是没有必要的…如果要切换到这种方法,只需使用以下代码:
import { bootstrap } from "angular2/platform/browser"; import { provide } from "angular2/core"; import { ROUTER_PROVIDERS, LocationStrategy, HashLocationStrategy } from "angular2/router"; bootstrap(MainApp, [ ROUTER_PROVIDERS, provide(LocationStrategy, {useClass:HashLocationStrategy}); ]);