我正在开发一个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__
吗?
答案 0 :(得分:1)
您正在使用的别名(vendor
)是可行的方法。
来自Guide:
当在应用程序中安装扩展时,Yii将为每个列出的根命名空间创建一个别名,该别名引用与命名空间对应的目录。
或者,您可以使用public $sourcePath = '@vendor/my-extension/assets/resources';
文件夹的别名,例如:
{{1}}