Yii2扩展:如何在资产中声明$ sourcePath?

时间:2017-05-11 07:59:31

标签: yii2 assetbundle yii2-extension

我正在开发一个Yii2扩展,对某些js / css文件使用AssetBundle

namespace myExtension/assets;

class ResourcesAsset extends AssetBundle {
    public $sourcePath = '@app/assets/resources';
    public $css        = ['resources.css'];
    public $js         = ['resources.js'];
    public $depends    = ['yii\bootstrap\BootstrapPluginAsset'];
}

扩展中的结构:

my-extension
|-assets
| |-resources
|   |-resources.css
|   |-resources.js
|   ResourceAsset.php
|-controllers
|-models
|-views
|-Module.php

由于$sourcePath,当我在另一个项目中安装扩展程序时,这似乎不起作用。别名@app指向应用程序基本路径,而不是指向供应商中的扩展根文件夹。

目前,我使用@myExtension/assets/resources,因为我知道它在安装时会在extionsions.php中获取该别名。但我认为这不是最佳选择。那么声明$sourcePath的最佳方式是什么?我应该创建一个自己的别名(在Module.php?)?我应该使用__DIR__吗?

1 个答案:

答案 0 :(得分:1)

您正在使用的别名(vendor)是可行的方法。

来自Guide

  

当在应用程序中安装扩展时,Yii将为每个列出的根命名空间创建一个别名,该别名引用与命名空间对应的目录。

或者,您可以使用public $sourcePath = '@vendor/my-extension/assets/resources'; 文件夹的别名,例如:

{{1}}