ホームページ >バックエンド開発 >PHPチュートリアル >javascript – フレームワークのルーティングに関する奇妙な問題 - コードログ

javascript – フレームワークのルーティングに関する奇妙な問題 - コードログ

WBOY
WBOYオリジナル
2016-12-01 00:26:011157ブラウズ

簡単な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" には違いがあります。実際に試してみてください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。