0

Rails サーバーに Angular 2 アプリをロードさせたいので、2 つのサーバーを実行する必要はありません。

Angular 2 の出発点として、次の例を使用しました: https://github.com/angular-class/angular2-webpack-starter

Rails サーバーを実行し、インデックス ページを提供すると、Angular 2 アプリが期待どおりに読み込まれます。ホーム、ダッシュボード、Todo のリンクがいくつかあります。クリックするとすべて機能します。

直接電話http://localhost:3000:/todoすると、ルーティング エラーが発生します。したがって、問題に対処するために、レールルーターに次のものがあります。

get ':todo', controller: :home, action: :index

これでアプリが読み込まれますが、「todo」コンポーネントには移動しません。

ここで、webpack-dev-server を使用して Angular 2 アプリを実行すると (リポジトリの指示に従って)、この問題は発生しません。

webpack-dev-server は、Angular 2 のルーティングが引き継ぎ、ユーザーを正しいコンポーネントに誘導できるように、すべてのリクエストを / にリダイレクトできるように見えます。

任意の支援をいただければ幸いです。

4

1 に答える 1

0

同じコードを使用して両方のサーバーをテストしていたときに、サーバーごとに個別のインデックス ファイルがあったことがわかりました。

Rails サーバーのインデックス ファイルに次の行がありませんでした:

<base href="/">

それを追加した後、問題は解決しました。

于 2015-07-07T04:03:02.037 に答える