我使用Angular 5与服务栈后端通信。
我可以通过输入根地址加载我的主页:http://127.0.0.1:8088然后我可以使用相关链接导航到我定义的所有路线。
但是,如果我尝试手动输入路线,即http://127.0.0.1:8088/home或http://127.0.0.1:8088/searcharchive,我会:
未找到请求处理程序(404):
Request.HttpMethod:GET
Request.PathInfo:/ home
Request.QueryString:Request.RawUrl:/ home
我的路由代码如下:
const routes: Routes = [
{ path: 'home', component: HomeComponent },
{ path: 'searcharchive', component: SearchArchiveComponent },
{path: '', redirectTo: 'home', pathMatch: 'full'},
{path: '**', component: PageNotFoundComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
HTML模板是:
<nav>
<a [routerLink]="['/home']">Home</a>
<br/>
<a [routerLink]="['/searcharchive']">Search Archive</a>
<br>
<div class="container-admin-nav">
<a [routerLink]="['/admin']">Admin Module</a>
</div>
</nav>
这引起了真正的麻烦,因为我不仅无法使用地址栏导航我甚至无法做简单的事情,如添加图像,因为无论我放置图像的位置都无法显示。在查看开发人员工具时,我得到GET http://127.0.0.1:8088/logoTransparent.png 404(未找到)所以我只能猜测路由是(再一次)妨碍某些方式。
答案 0 :(得分:0)
我有一个类似的问题,因为我在使用
代理配置。
Angular应用是我的前端,而我有一个 SpringBoot 应用作为后端。
在我的proxy.config.json file
中,我有以下内容:
{
"/**": { <-- **marked line**
"target": {
"host": "localhost",
"protocol": "http:",
"port": 8080
},
"secure": false,
"logLevel": "debug"
}
}
因此,每当我在地址栏中输入任何一条路由时,由于有标记的行,它将被重新路由到我的SpringBoot应用程序中……而我不希望那样。我只是希望将服务中的后端请求重新路由到后端。
我在所有我的服务中向我的后端请求中添加了/api
,然后在proxy.config.json
中从网址中删除了/api
。为此,我刚刚将"pathRewrite": { "^/api": "" },
添加到了proxy.config.json
中,现在看起来像这样:
{
"/api/**": {
"target": {
"host": "localhost",
"protocol": "http:",
"port": 8080
},
"pathRewrite": {
"^/api": ""
},
"secure": false,
"logLevel": "debug"
}
}