9

私がする時

print_r(Yii::app()->request->baseUrl)

空の文字列を取得します。Yii フォーラムの投稿によると、これはデフォルトで空白になっています。絶対 URL を使用できるようにデフォルト値を変更するにはどうすればよいですか?

4

7 に答える 7

33

/path/to/application/protected/config/main.php を編集してデフォルト値を変更できます。リクエスト コンポーネントを追加し、baseUrl プロパティを構成します。

return array(
    ...
    'components' => array(
        ...
        'request' => array(
            'baseUrl' => 'http://www.example.com',
        ),
    ),
);
于 2012-06-26T16:04:55.443 に答える
12

そのフォーラムの投稿にあるように、プラットフォームごとに、または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の回答によって示されています。

于 2011-10-01T06:47:46.900 に答える
3

ブートストラップ ファイル (index.php) が Web ルートにあるため、おそらく空白です。そうでない場合は、何らかの値が表示されるはずです。それを変更すると、その目的が無効になります。

次のように使用します。

href="<?php echo 'http://www.myhost.com' . Yii::app()->request->baseUrl; ?>/css/screen.css"

ほとんどの場合、パスは変更されませんが、たとえば、Yii アプリをサブディレクトリ内に配置することを決定した場合、それは移植可能になります。(上記の http メソッドとホスト名を削除するだけで、ユーザーがいる同じホストで機能します。)

于 2011-09-30T20:11:08.427 に答える
1

Yii::app()->baseUrl は、URL から index.php への相対パスのみを返します。例: 127.0.0.1/index.php は '' を返します 127.0.0.1/yii/index.php は '/yii' を返します

于 2011-10-09T21:55:09.813 に答える