ホームページ >バックエンド開発 >PHPチュートリアル >javascript – フレームワークのルーティングに関する奇妙な問題 - コードログ
簡単なMVCフレームワークを書きました。設定されたルーティングはモジュール/コントローラー/アクションと同じくらい単純です。
localhost:86/app/index/index にアクセスするとビューファイルをレンダリングできます。
ここで問題が発生します。
app/index/index のようなルートでページにアクセスし、ページ内にジャンプを書き込みます
クリックするとページにジャンプします
このとき、ブラウザの閲覧パスはlocalhost: 86/app/index/demo/index/indexとなる場合があります。
ただし、正常にアクセスでき、localhost: 86/demo/index/index になる場合もあります。
この 2 つの違いは、href のパス app/index/index と /app/index/index の違いであることがわかりました。このルーティングの問題をより良く解決する方法はあるでしょうか?
プロジェクトのソースコードは https://github.com/zhoujiangy... にあります。
簡単なMVCフレームワークを書きました。設定されたルーティングはモジュール/コントローラー/アクションと同じくらい単純です。
localhost:86/app/index/index にアクセスするとビューファイルをレンダリングできます。
ここで問題が発生します。
app/index/index のようなルートでページにアクセスし、ページ内にジャンプを書き込みます
クリックするとページにジャンプします
このとき、ブラウザの閲覧パスはlocalhost: 86/app/index/demo/index/indexとなる場合があります。
ただし、正常にアクセスでき、localhost: 86/demo/index/index になる場合もあります。
この 2 つの違いは、href のパス app/index/index と /app/index/index の違いであることがわかりました。このルーティングの問題をより良く解決する方法はあるでしょうか?
プロジェクトのソースコードは https://github.com/zhoujiangy... にあります。
これは URL パスの問題であり、ルーティングとは関係ありません。
app/index/index は相対パスです
/app/index/index は絶対パスです
次のようなファイル システム パスと同様です。
現在の場所が /a/b/c
の場合、
href="foo/bar" は /a/b/foo/bar にジャンプします
href="/ foo/bar」は/foo/barにジャンプします
これはフレームワークのルーティングによって決定されるのではなく、Web 標準によって決定されます
href = "/xxx/xxx" と href="xxx/xxx" には違いがあります。実際に試してみてください。