Php 来自控制台应用程序的资产管理,Yii

Php 来自控制台应用程序的资产管理,Yii,php,command-line,yii,console-application,assets,Php,Command Line,Yii,Console Application,Assets,如何使用Yii assets manager从控制台应用程序访问作为资产发布的图像? 我使用Yii(控制台应用程序)中的命令发送新闻稿。我无法在邮件模板中使用作为资产发布的图像 我将实际图像放在受保护的/assets/images/文件夹中。当我使用assetmanager发布它们时,它们将在root/assets/6f3434/images/文件夹中可用 通常,我在Yii的web应用程序中访问图像的代码是 assetBase?>/images/a.png”/>其中$this->assetBas

如何使用Yii assets manager从控制台应用程序访问作为资产发布的图像?

我使用Yii(控制台应用程序)中的
命令发送新闻稿。我无法在邮件模板中使用作为资产发布的图像

我将实际图像放在
受保护的/assets/images/
文件夹中。当我使用
assetmanager
发布它们时,它们将在
root/assets/6f3434/images/
文件夹中可用

通常,我在Yii的web应用程序中访问图像的代码是

assetBase?>/images/a.png”/>
其中
$this->assetBase
引用已发布文件夹的url,在本例中为
root/assets/6f3434


如果我从控制台应用程序运行代码,同样的方法也不起作用。

您没有解释什么是不起作用的。所以这里只是一个一般性的指导原则

您必须在控制台应用程序中配置
assetManager
组件。您还需要调整一些设置,以便最终获得相同的资产路径。您应该在
console.php
中添加类似的内容:

<?php
  'aliases' => array(
      'webroot' => realpath(__DIR_.'/../..'),
  ),
  'components' => array(
      'assetManager'=>array(
          'class'     =>'CAssetManager',
          'basePath'  =>realpath(__DIR__.'/../../assets'),
          'baseUrl'   =>'/assets',
      ),
      'request' => array(
          'baseUrl' => '',
      ),
  ),
      //...

您没有解释什么不起作用。所以这里只是一个一般性的指导原则

您必须在控制台应用程序中配置
assetManager
组件。您还需要调整一些设置,以便最终获得相同的资产路径。您应该在
console.php
中添加类似的内容:

<?php
  'aliases' => array(
      'webroot' => realpath(__DIR_.'/../..'),
  ),
  'components' => array(
      'assetManager'=>array(
          'class'     =>'CAssetManager',
          'basePath'  =>realpath(__DIR__.'/../../assets'),
          'baseUrl'   =>'/assets',
      ),
      'request' => array(
          'baseUrl' => '',
      ),
  ),
      //...

让我试试这个解决方案,谢谢。现在我用request组件&getBaseUrl()函数直接指向资源,而不是资产文件夹。让我试试这个解决方案,谢谢。现在我用request组件&getBaseUrl()函数直接指向资源,而不是资产文件夹。