Yii2:具有高级配置的通用资产

时间:2014-04-21 22:02:01

标签: php assets yii2

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

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

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

1 个答案:

答案 0 :(得分: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'
    ];
}

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