2016-06-11 3 views
0

私の学校プロジェクトで1ページのウェブを作ります。私は非常に単純なヒストリーAPIを使用しているので、ユーザーは別のページにいると思うようにURLを変更しています(ただし、私は隠していて、ページ上に別の要素を表示しています)履歴API - URLに関係なく、index.htmlにとどまるようブラウザに指示します

www.mypage.com /メイン www.mypage.com/slideshow

私は戻る/進む履歴ボタンでアプリケーションを使用していた場合、それは正常に動作しますが、私はページをリロードしたい場合、ブラウザはその偽のURLをロードしようとすると、そのもちろんクラッシュする。ユーザーに表示されるURLに関係なく、index.htmlに常にアクセスするにはどうしたらよいですか?

私はhtaccessファイルでこれを管理しようとしたが、私は

答えて

0

あなただけの1つのURLにすべての要求を書き換えたい場合は、

RewriteRule^/index.html [L] 
0

成功ではなかったあなたの望ましい結果を達成するための唯一の方法である、バックエンドを使用していないようです。 (私の前提が正しければ)ブラウザーはローカルマシンのファイルをフェッチしようとしているのにエラーが出る(リフレッシュ後に/slideshowをロードできない)が、存在しない。 SO answer explaining this well

したがって、すべてのルート(ワイルドカードを使用)について同じビューをレンダリングし、指定されたURLに基​​づいてフロントエンドで表示を行うようにバックエンドに指示する必要があります。

React-Routerを使用する必要はなく、リフレッシュするたびに(つまり、JavaScriptがロードされたときに)実行されるルータ処理機能を作成します。あなたが好きなように呼び出す)。

(あなたはバックエンドがすでに、ワイルドカードで*をルーティングを処理するためのJavaScriptは、すべてのURLのために実行されることを知っているだろう)

+0

答えはThanxですが、フロントエンドアプリケーションだけなので、バックエンドを使用することはできません。だからあなたは言うことができないのですか? :/ 私は、htaccessを書き直すことで可能と考えました - www.myweb.com/slideshowが実際にwww.myweb.com/index.htmlを意味するというルールをいくつか書きます。それはうまくいきませんか? (もしそうなら、私はそれを書く方法がわかりません) –

+0

.htaccessについて多分わかりません(私は何を言っているかを二重に確認する必要があります)。しかし、私が知っている限り、.htaccess Apache Webサーバー上でのみ実行されます(つまり、バックエンド関連のものを使用します)。フロントエンドテクノロジだけを使用すると、目的の結果を達成することはできません。 – ali404

関連する問題