これは簡単な質問だと思いますが、答えを見つけることができなかったか、少なくとも検索で正しい用語を使用できませんでした。
私は一緒にセットアップしAngular2
てSpringboot
います。デフォルトでAngular
は、localhost:8080\dashboard
やなどのパスを使用しますlocalhost:8080\dashboard\detail
。
可能であれば、パスをハッシュとして使用しないようにします。Angularのドキュメントでは、
ルーターのprovideRouter関数は、LocationStrategyをPathLocationStrategyに設定し、それをデフォルトの戦略にします。必要に応じて、ブートストラッププロセス中にオーバーライドしてHashLocationStrategyに切り替えることができます。
その後...
ほとんどすべてのAngular 2プロジェクトは、デフォルトのHTML 5スタイルを使用する必要があります。ユーザーが理解しやすいURLを生成します。また、後でサーバー側レンダリングを実行するオプションも保持されます。
問題は、にアクセスしようとするとlocalhost:8080\dashboard
、Springがこのパスにマッピングされているコントローラーを探してしまうことです。
Whitelabel Error Page
There was an unexpected error (type=Not Found, status=404).
No message available
私は当初、すべてのサービスをアンダーにlocalhost:8080\api
、すべての静的をアンダーにすると考えましたlocalhost:8080\app
。しかし、このapp
パスへのリクエストを無視するようにSpringに指示するにはどうすればよいですか?
Angular2またはBootのいずれかを使用したより良いソリューションはありますか?
私はあなたのための解決策を持っています、あなたはViewController
Spring bootからAngularにリクエストを転送するために追加できます。
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class ViewController {
@RequestMapping({ "/bikes", "/milages", "/gallery", "/tracks", "/tracks/{id:\\w+}", "/location", "/about", "/tests","/tests/new","/tests/**","/questions","/answers" })
public String index() {
return "forward:/index.html";
}
}
ここですべてのangular2をリダイレクトしました( "/ bikes"、 "/ milages"、 "/ gallery"、 "/ tracks"、 "/ tracks / {id:\ w +}"、 "/ location"、 "/ about"、 "/ tests"、 "/ tests / new"、 "/ tests / **"、 "/ questions"、 "/ answers")をSPAに送信する予測に対して同じことを行うことができ、404エラーページをリダイレクトすることもできます次のステップとして、インデックスページに移動します。楽しい!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加