2017-10-25 24 views
0

こんにちは私は反応するアプリを展開する必要があります。私は実行することを実現するために反応生成ビルド404が見つかりません

:私はバーチャルホスト

<VirtualHost *:80> 
ServerName hello.local 
DocumentRoot c:/wamp64/www/hello_world/build 
<Directory "c:/wamp64/www/hello_world/build"> 
      Options Indexes FollowSymLinks MultiViews 
      AllowOverride All 
      Require all granted 
</Directory> 

を追加しました私のvhost.confで、その後

"を実行し、ビルドをNPM" 私はまた、/ etcに追加しました当然の

hello.localホストiは、httpd.conf内のmod書き換えを有効にしている

私はhello.local /私の反応アプリのメインページを正しく表示するが、反応する反応経路経路hello.local/exampleに行きたいときは、404が見つかりませんでした。何ができるのか教えてください。それはApacheの設定や反応ルータの問題はいくつかの間違いがありますか?よろしくお願いします。

答えて

2

これはSPAの一般的な問題です。 SPAでは、主にクライアント側でルーティングが行われます。あなたの場合は、たいていreact-routerが仕事をしているはずです。 js全体が単一のファイルとしてバンドルされており、index.htmlで提供されているので、サーバー内のすべてのパスにindex.htmlを提供する必要があります。これはnon-existingです。

は、ご自分のサーバに一致するパスが存在しないのであれば、index.htmlには務めになるだろう。この

RewriteEngine On 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR] 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d 
RewriteRule^- [L] 

RewriteRule^/index.html [L] 

のような設定を追加する必要があります。その後、javascriptが実行され、react-router(クライアント側ルーティング)が引き継ぎ、ルートの正しいコンポーネントを表示します。

これは、クライアント側でルーティングが行われるほとんどのSPAに当てはまります。

+0

はい、私はこのようにしましたが、それは最高の解答の1つです:)あなたのための賞賛! @Panther SPAとは何ですか? 実稼働環境に導入する方法は次のとおりです。https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#deployment –

関連する問題