Управление ассетами из консольного приложения, Yii

Как получить доступ к изображениям, опубликованным как ресурсы, с помощью диспетчера ресурсов Yii из консольных приложений?

Я отправляю информационные бюллетени, используя commands в Yii (консольное приложение). Я не мог использовать изображения, опубликованные как активы, в своем почтовом шаблоне.

У меня есть настоящие изображения внутри папки protected/assets/images/. Когда я опубликую их с помощью asset manager, они будут доступны в папке root/assets/6f3434/images/.

Обычно мой код для доступа к изображению в веб-приложении Yii будет

<img src="<?php echo $this->assetBase ?>/images/a.png" />, где $this->assetBase ссылается на URL-адрес опубликованной папки, в данном случае root/assets/6f3434.

То же самое не работает, если я запускаю код из консольного приложения.


person Suriya    schedule 03.01.2013    source источник


Ответы (1)


Вы не объяснили, что именно не работает. Так что вот только общее руководство.

Вы должны настроить компонент assetManager в своем консольном приложении. И вам нужно настроить некоторые параметры, чтобы в итоге у вас были одинаковые пути к ресурсам. Вы должны добавить что-то вроде этого в свой console.php:

<?php
  'aliases' => array(
      'webroot' => realpath(__DIR_.'/../..'),
  ),
  'components' => array(
      'assetManager'=>array(
          'class'     =>'CAssetManager',
          'basePath'  =>realpath(__DIR__.'/../../assets'),
          'baseUrl'   =>'/assets',
      ),
      'request' => array(
          'baseUrl' => '',
      ),
  ),
      //...
person Michael Härtl    schedule 23.04.2013
comment
Позвольте мне попробовать это решение, спасибо!. Теперь я использую компонент запроса и функцию getBaseUrl(), чтобы указать ресурсы напрямую, а не папку активов. - person Suriya; 23.04.2013