在Yii框架中,“homeUrl”和“baseUrl”的区别是什么?
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命令来自行检查每一个变量:
echo Yii::app()->getBaseUrl(true);// true tells to get a relative url, false the other way
echo Yii::app()->getHomeUrl();
如何使用baseUrl和homeUrl?
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就是您的应用程序的着陆页。嗯,我以前没有使用过它,但我猜您可以根据用户角色在登录后设置不同的homeUrls!
其中一个是应用程序链接的基本URL。另一个是主页URL。主页URL将基于基本URL,并且将是一个特定的路由或页面,例如,在登录后重定向到该页面。