return array(
...
'components' => array(
...
'request' => array(
'baseUrl' => 'http://www.example.com',
),
),
);
正如该论坛中的帖子所说,这可能因不同平台或Web应用程序未位于默认文件夹中而有所不同。
以下所有内容都适用于我:
echo Yii::app()->request->baseUrl."<br/>" ;
print_r(Yii::app()->request->baseUrl);
echo "<br/>";
var_dump(Yii::app()->getBaseUrl(true));
echo "<br/>";
echo Yii::app()->request->getBaseUrl(true);
我使用yiic在终端中使用以下命令创建了默认设置的Web应用程序:yiic webapp /path/to/webapp
。这将生成Web应用程序所需的目录结构,以及默认的模板文件。您可以试一试并查看其运行方式。我自己对yii也是新手。
编辑:
这个解决方案可能适用于原始提问者,但正确的设置baseUrl的方法由ecco在这个问题的答案中展示。Yii::app()->baseUrl
也可以使用。你得到的东西很有趣。 - bool.dev很可能是空白的,因为您的bootstrap文件(index.php)位于您的Web根目录下。如果不是这样,您应该会看到一些值。更改它将会失去它的作用。
您可以像这样使用:
href="<?php echo 'http://www.myhost.com' . Yii::app()->request->baseUrl; ?>/css/screen.css"
Yii::app()->baseUrl 返回的是从 URL 到 index.php 的相对路径。 例如: 127.0.0.1/index.php 返回 '' 127.0.0.1/yii/index.php 返回 '/yii'
尝试 echo Yii::$app->baseUrl(true)
注意,true参数是执行必要操作的。
使用 Yii 2.0.13.1 下列代码可以正常工作
<?php echo Yii::$app->request->baseUrl; ?>
如果你正在使用 Url helper 生成 URL,你需要将 baseUrl 键设置为 UrlManager 组件
'urlManager' => [
'baseUrl' => 'http://example.com',
然后,您可以使用 Url 助手创建绝对 URL,如下所示:
echo Url::to(['site/index', 'src' => 'ref1', '#' => 'name'], true); // 输出 ===> http://example.com/index.php?r=site%2Findex&src=ref1#name
/htdocs/protected/(web应用程序文件)
/lib/yii/(yii核心文件)
这是一个Web应用程序。我没有使用yiic。有没有一种方法可以通过运行来设置baseUrl?我没有进行Yii框架的初始安装。 - David XiaYii::app()->createAbsoluteUrl(Yii::app()->request->url)
。该代码从这里获取。 - h2ooooooo