0

我正在为一些 js/css 文件开发一个使用AssetBundle的 Yii2 扩展:

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__吗?

4

1 回答 1

1

您正在使用的别名 ( @myExtension) 是要走的路。

指南

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

或者,您可以为文件夹使用别名,vendor例如:

public $sourcePath = '@vendor/my-extension/assets/resources';
于 2017-05-11T08:09:56.283 回答