[解決済み] React-router v4 - GET *url* できない
2023-01-05 02:08:21
質問
react-router v4を使い始めたのですが、シンプルな
<Router>
をapp.jsに記述し、いくつかのナビゲーションリンクを設定しています(以下のコードを参照)。もし私が
localhost/vocabulary
に移動すると、ルーターは私を正しいページにリダイレクトします。しかし、その後リロード(F5)を押すと、(
localhost/vocabulary
) を押すと、すべてのコンテンツが消え、ブラウザは
Cannot GET /vocabulary
. どのようにそれは可能ですか?誰かが私にそれを解決する(ページを正しく再ロードする)方法の手がかりを与えることができますか?
App.jsです。
import React from 'react'
import ReactDOM from 'react-dom'
import { BrowserRouter as Router, Route, Link } from 'react-router-dom'
import { Switch, Redirect } from 'react-router'
import Login from './pages/Login'
import Vocabulary from './pages/Vocabulary'
const appContainer = document.getElementById('app')
ReactDOM.render(
<Router>
<div>
<ul>
<li><Link to="/">Home</Link></li>
<li><Link to="/vocabulary">Vocabulary</Link></li>
</ul>
<Switch>
<Route exact path="/" component={Login} />
<Route exact path="/vocabulary" component={Vocabulary} />
</Switch>
</div>
</Router>,
appContainer)
どのように解決するのですか?
Webpackを使用していると仮定します。もしそうなら、webpack の設定にいくつかのことを追加することで問題が解決するはずです。具体的には
output.publicPath = '/'
と
devServer.historyApiFallback = true
. 以下は、この両方を使用した webpack の設定例で、私の場合は更新の問題が解決しました。もし、あなたが好奇心旺盛なら、"なぜ"。
この
が役に立ちます。
var path = require('path');
var HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: './app/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index_bundle.js',
publicPath: '/'
},
module: {
rules: [
{ test: /\.(js)$/, use: 'babel-loader' },
{ test: /\.css$/, use: [ 'style-loader', 'css-loader' ]}
]
},
devServer: {
historyApiFallback: true,
},
plugins: [
new HtmlWebpackPlugin({
template: 'app/index.html'
})
]
};
これについては、こちらに詳しく書きました -。 React Routerで更新時の"cannot GET"エラーを修正する(またはクライアント側ルータの仕組み)。
関連
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] JavaScriptでURLをエンコードする?
-
[解決済み] URLを新しいタブで開く(新しいウィンドウではない)
-
[解決済み] jQueryで現在のURLを取得する?
-
[解決済み] Reactルータを使ったプログラムによるナビゲーション
-
[解決済み] React JSX内のループ
-
[解決済み] React-routerのURLを更新したり、手動で書き込んだりするとうまくいかない
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] React-routerのURLを更新したり、手動で書き込んだりするとうまくいかない
-
[解決済み] ジェスト あるクラスの特定のメソッドをモックする方法
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] reactのrender関数でdynamic hrefを作成するには?
-
[解決済み] URL/アドレスバーからJavascriptの関数を呼び出す
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] AngularJS - ngRepeatフィルタリングされた結果の参照を取得する方法
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法