Vue build | router not working | not found error
質問する
私のViteVue 3プロジェクトには2つのパスがあります.
// 서버 실행방법
// 참고) dist에 build된 파일이 들어있다.
$ npx http-server dist
まず,内部router.push('/mypage')
のような関数により,ページ切り替え動作が良好である.また,アドレスウィンドウがhttp://localhost:8080
,パスが'/'
のところもよく近づくことができる.でも.
アドレスウィンドウに
http://localhost:8080/mypage
と入力し、アクセスできない現象(Failed to load resource: the server responded with a status of 404 ())
が発生します.この問題を解決したい.🧐探索する
googlingとともに以下のように検討する.
まず、vueはスパです.したがって、ページリクエスト時にindexを使用するentryポイント(index.html)があります.html、js、およびcssを実行して、要求されたページを描画します.
childpath
('localhost:8080/mypage')
が要求された場合、index.html
はロードされず、他のhtmlを探しているため、404 NOT FOUNDが発生すると推定される.// 기존 파일구조
dist
ㄴ index.html
// 임시로 변경한 파일구조
dist
ㄴ index.html
ㄴ mypage
ㄴindex.html
ファイルを作成してサーバ(一時的に変更されたファイル構造など)を実行し、mypageのindexであるchildpath ('localhost:8080/mypage')
にアクセスします.htmlのロードを確認します.つまり、childpath ('localhost:8080/mypage')
のリクエストは厳しい場所に向かっています.問題点を把握した.では、今しなければならないのは
모든 요청을 index.html 로 보내기
です.でもなぜルーターなのか.プッシュで移動するとスムーズですか?
router.pushはindexhtml内部で操作する関数.したがって、サーバに新しいリクエストを発行するのではなく、関数を実行してルーティングパスを変更します.
->あなたの回答はまずいと思いますが、何か良い説明があれば教えてください.🥺
解決する
Proxyを使用してlocalhost:8080
に発行されたすべてのリクエストはdist/indexです.htmlを出せばいい!つまり、vueのコードを変更するのではなく、サーバ設定を変更する必要があります.
次の図に示すように、http-serverを実行すると、localhost:8080にすべてのサーバが送信されます.次のようにサーバーを動かして、動きがいいです.😊npx http-server --proxy http://localhost:8080?
Viteを使用して他のサーバを使用している場合は、このドキュメントを参照してください.
おしゃべり
npx http-server --proxy http://localhost:8080?
この現象を理解するために、グーグルは以下のキーワードを使用しています.
私の解決策でなければ、ルータが履歴モードであるかどうかを見てみましょう.
リファレンス
Reference
この問題について(Vue build | router not working | not found error), 我々は、より多くの情報をここで見つけました https://velog.io/@shelly/Vue-router-not-working-when-build-with-not-found-errorテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol