SpringとAngularJSは初めてです。手順 here に従ってバックエンドのRESTful APIを構築し、リクエストに応じてJsonを送信します。したがって、ガイドによると、「mvn spring-boot:run」を実行すると、Tomcatサーバーはlocalhost:8080で起動します。
次に、Yeoman angularジェネレーターを使用してangularアプリをビルドしました。 angularアプリ内で "grunt serve"を実行すると、フロントエンドアプリはlocalhost:9000で実行されます。
angularアプリを同じドメイン、たとえばlocalhost:8080のSpringboot Tomcatサーバーと一緒に提供できるようにするにはどうすればよいですか?
フォローできるサンプルプロジェクトはありますか?次のプロジェクトを見つけましたが、Tomcatのバックグラウンドがあまりないため、まだ動作しません。
次のいずれかを取る必要があります。
grunt build
その後、基本的にdist /ディレクトリ内のすべてのもの)そして、それらを次のフォルダーのいずれかにコピーします(/ public /を推奨します): http://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot
Spring Bootは、次のいずれかのディレクトリ内にある静的Webリソースを自動的に追加します。
/ META-INF/resources /
/ resources /
/静的/
/公衆/
つまり、Spring BootはJavaまたはGroovyアプリを構築するためのシンプルなアプローチを提供するだけでなく、クライアントサイドJavaScriptコードを簡単にデプロイして実際のWebサーバー環境内でテストすることもできます!
ただし、フロントエンドに変更を加えるたびにファイルを再コピーする必要があるため、これは開発の苦痛になります。実稼働環境での目標は、ビルドされたファイルのバージョン付きコピーをSpringアプリにデプロイすることです。
開発のために、gruntにAngularコンテンツを提供し、Tomcatとgruntサーバー(ノードですか?)の両方を実行し、フロントエンドとバックエンドの間でクロスオリジンリクエストを有効にすることを検討してください。 OR全体のangularディレクトリを上記のディレクトリのいずれかにコピーすることもできますが、これは短期的なアプローチです。