YiiフレームワークのhomeUrlとbaseUrlの違いは何ですか?
3 に答える
Yii::app()->getBaseUrl(true); // => http://localhost/yii_projects
Yii::app()->getHomeUrl(); // => /yii_projects/index.php
Yii::app()->getBaseUrl(false); // => /yii_projects
これは、名前を変更できるパスをハードコーディングするのではなく、画像などのディレクトリまたはファイル自体をポイントする場合のベストプラクティスです。」
ドキュメントから:
baseUrl:
アプリケーションの相対URLを返します。これはscriptUrlに似ていますが、スクリプトファイル名がなく、末尾のスラッシュが削除されている点が異なります。
一方、homeUrlは
ホームページのURL
アプリケーションのどこかにエコーして、それぞれを自分で調べてみてください。
echo Yii::app()->getBaseUrl(true);// true tells to get a relative url, false the other way
echo Yii::app()->getHomeUrl();
それぞれの使い方は?
baseUrlは、@ bcmcfcが言ったように、アプリケーション内のすべてのリンクのベースとして役立つ可能性があります。
web_root/myapp/img/
たとえば、絶対パスを使用してリンクした場合に、イメージにリンクしたいとします。たとえば、すべての開発が完了し、サーバー<img src="C:/wwww/myapp/img/somepic.jpg>
にデプロイしたいとします。linux
すべてのリンクが壊れていることがわかります:(しかし、代わりに壊れた場合:<img src= <?php Yii::app()->baseUrl() ?> . "/img/somepic.jpg"
すべてが正常に機能するはずです:)
homeUrlは、単にアプリのランディングページです。さて、これまで使ったことはありませんでしたが、ログイン後など、ユーザーの役割に応じて異なるhomeurlを設定できると思います!!
1つは、アプリ内のリンクのベースURLです。もう1つはホームURLです。ホームURLはベースURLに基づいており、たとえば、ログイン後にリダイレクトされる特定のルートまたはページになります。