2017-01-21 7 views
1

JS(ReactJS)で書かれたフロントエンドのシングルページアプリケーションと、Phoenix(Elixir)で動作中のバックエンド)。アプリケーション内でナビゲーションが行われる限り、すべてが正常に機能します。ただし、ブラウザからSPAのページにアクセスしようとすると、Phoenixから発したルートエラーが発生します。たとえば、ブラウザからフロントエンドSPAリンクにアクセスすると、ルートが見つからないバックエンドが発生する

no route found for GET /search (PhoenixApp.Router) 

は、ブラウザからhttp://localhost:4000/searchにアクセスしたときの結果です。

SPA内のナビゲーションからhttp://localhost:4000/searchにアクセスすると、ReactJSの作業ページが表示されます。

私の質問:フェニックスではなく、ReactJSでページを取得するにはどうすればよいですか?

+0

あなたはランディングページで応答するようにサーバーを設定する必要があります。したがって、 '/'と '/ search 'を実行すると、サーバから同じ応答が返されます。 – dfsq

+0

SPA:それはNginxに配備されていますか? –

+0

ホームページのルートにワイルドカードルートを指定してみてください。 'get '/ * anything"、PageController、:index'。 – Dogbert

答えて

1

シングルページアプリケーションでこれを行うための標準的な方法は、/にアクセスしているときと同様に、すべてのGETルートに同じ機能を提供することです。あなたはPhoenix RouterにワイルドカードGETルートを追加して、/のルートと同じものを指すことができます。 /PageControllerindex機能から提供されている場合は、追加する必要があります:SAPが正しくオーバーそれを取ると、ブートストラップのものができるように

get "/*anything", PageController, :index 
関連する問題