gpt4 book ai didi

url - Spring Boot 和 Angular 2 的 URL 处理问题

转载 作者:太空狗 更新时间:2023-10-29 17:37:18 26 4
gpt4 key购买 nike

我正在尝试使用 maven 开发一个应用程序,后端使用 Spring Boot,前端使用 Angular 2。

angular 2 前端位于项目的 src/main/resources/static 目录中。

当我在浏览器中输入 http://localhost:8080/ URL 时,一切正常:我可以访问 angular 2 前端,并且前端可以与其他 api 通信完美。我的 Angular 2 路由工作正常:当我点击前端的链接时,我进入了正确的页面,浏览器网址栏显示了正确的内容(即 http://localhost:8080/documents)

但问题是当我尝试在浏览器中直接写入相同的 URL 时。 Spring 接管了前端并表示 /documents 没有映射。

有没有办法告诉 spring boot 只“监听”/api/* URL 并将所有其他的“重定向”到前端?

这是我的 Spring Controller 类:

@RestController
@RequestMapping("/api")
public class MyRestController {

@Autowired
private DocumentsRepository documentRepository;

@CrossOrigin(origins = "*")
@RequestMapping(value = "/documents/list",
method = RequestMethod.GET,
produces = "application/json")
public Iterable<RfDoc> findAllDocuments() {
return documentRepository.findAll();
}

}

这是主要的应用类:

@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}

}

这是我的 app.route.ts:

import { provideRouter, RouterConfig }  from '@angular/router';
import { DocumentComponent } from './doc.component';

const routes: RouterConfig = [
{
path: '',
redirectTo: 'documents',
pathMatch: 'full'
},
{
path: "documents",
component: DocumentComponent
}
];

export const appRouterProviders = [
provideRouter(routes)
];

最佳答案

好的,所以我找到了一个完美的解决方案(至少对我而言):我将我的位置更改为旧的 AngularJS 1.X 方式,在 URL 中使用#(即 http://localhost: 8080/#/文档)。

为了获得这种行为,我像这样改变了我的 Bootstrap

import { bootstrap }      from '@angular/platform-browser-dynamic';
import { HTTP_PROVIDERS } from '@angular/http';

import { AppComponent } from './app.component';
import { appRouterProviders } from './app.routes';
import { AuthService } from './auth.service';

bootstrap(AppComponent, [AuthService,
appRouterProviders,
HTTP_PROVIDERS,
{ provide: LocationStrategy, useClass: HashLocationStrategy }
]);

希望这可以帮助到一些人!

关于url - Spring Boot 和 Angular 2 的 URL 处理问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38609621/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com