10

我想将 Yii2 的高级配置与单独的前端、后端、通用和控制台应用程序一起使用。我有许多常见的资产,包括样式表、js 文件和将在前端和后端应用程序中使用的字体。只有将这些资产放在共同的资产文件夹中才有意义。

然后,我的困惑开始了。似乎我需要一个单独的 AppAsset.php 文件来管理整个应用程序的前端和后端部分中的资产,因为两者之间有些事情会有所不同。(我不确定是将前端、后端等称为总体应用程序中的单独应用程序,还是将它们称为大型总体应用程序的子应用程序。)无论如何,看来我需要两个AppAsset管理器。我将自己处理所有文件转换(例如 scss→css)和文件压缩,因此我无需配置资产管理器来执行此操作。

不幸的是,AppAsset关于如何在包中包含特定文件或目录的文档和资产包根本不清楚。我唯一看到的是如何使用$css, $js, 变量指定目的地。对于输入目录,我只看到一个 $sourcePath。这是否意味着我必须$sourcePath为每个 javascript、css、图像等文件创建一个单独的包(和)。那是一大堆捆绑!当然,有一些方法可以将多个资产文件包含在一个包中。有人可以告诉我怎么做吗?

4

1 回答 1

2

好吧,我相信“捆绑”的目的是让您挑选您想要的文件。

您不需要为每个单独的文件制作不同的捆绑包。

例如,在我超级简单的自定义 AssetManager 中,我有这个:

namespace frontend\assets;
use yii\web\AssetBundle;
use yii\web\YiiAsset;

class CustomAsset extends AssetBundle{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/custom.css',
        'css/custom_modals.css'
    ];
}

由于这两个 CSSfolders/files位于我项目的前端部分,而 CustomAsset 也位于那里,所以当我注册此 AssetManager 时,它将通过$css数组并将它们添加到标题部分。$js如果需要,它对您要添加的数组执行相同的操作。另外,请记住,文件需要位于可通过网络访问的文件夹中。

于 2015-02-17T20:53:28.830 回答