私は、バックエンド用のSpringブートとフロントエンド用のモジュール2を使って、mavenを使ってアプリケーションを開発しようとしています。Springの起動と角度2でのURL処理の問題
角度2のフロントエンドは、プロジェクトのsrc/main/resources/static
ディレクトリにあります。
ブラウザにというURLを入力すると、すべてが問題ありません。角度2のフロントエンドにアクセスでき、フロントエンドは残りのAPIと完全に通信できます。私の角度2のルーティングはうまくいきます:フロントエンドのリンクをクリックすると、正しいページに移動し、ブラウザのURLバーに正しいものが表示されます(http://localhost:8080/documents
)
しかし、問題は私が直接同じURLをブラウザに書き込んでください。 Springはフロントエンドを引き継いで、/documents
のマッピングがないと言っています。
スプリングブートに「/api/*
」のURLだけをリッスンし、他のすべてをフロントエンドにリダイレクトする方法はありますか?ここで
は私の春のコントローラクラスである:ここで
@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)
];
/api/*のみを聞く方法があります。そのためには、フィルタが必要です。 – sparrow
どうすればいいですか?私はこのようなことにはまったく新しいです... – Eric