【问题标题】:Asset management from console application, Yii来自控制台应用程序的资产管理,Yii
【发布时间】:2012-12-17 15:07:00
【问题描述】:

如何使用 Yii 资产管理器从控制台应用程序访问发布为资产的图像?

我在 Yii(控制台应用程序)中使用 commands 发送时事通讯。我无法在我的邮件模板中使用作为资产发布的图像。

我在protected/assets/images/ 文件夹中有实际图像。当我使用asset manager 发布它们时,它们将在root/assets/6f3434/images/ 文件夹中可用。

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

<img src="<?php echo $this->assetBase ?>/images/a.png" /> 其中$this->assetBase 指的是已发布文件夹的网址,在本例中为root/assets/6f3434

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

【问题讨论】:

    标签: php command-line yii console-application assets


    【解决方案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' => '',
          ),
      ),
          //...
    

    【讨论】:

    • 让我试试这个解决方案,谢谢!现在我使用请求组件和 getBaseUrl() 函数直接指向资源而不是资产文件夹。
    猜你喜欢
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 2015-02-21
    • 2012-05-01
    • 1970-01-01
    • 2022-01-23
    • 2011-09-05
    相关资源
    最近更新 更多