我想将Yii2的高级配置与单独的前端,后端,通用和控制台应用程序结合使用。我有许多常见资产,包括样式表,js文件和将在前端和后端应用程序中使用的字体。然后将这些资产放在一个共同的资产文件夹中才有意义。
然后,我的quandry开始了。似乎我需要一个单独的AppAsset.php文件来管理整个应用程序的前端和后端部分中的资产,因为两者之间的某些东西会有所不同。 (我不确定是将前端,后端等作为总体内容中的单独应用程序引用,还是将它们称为大型总体应用程序的子应用程序。)无论如何,似乎我需要两个AppAsset
经理。我将自己处理所有文件转换(例如scss→css)和文件压缩,因此我无需配置资产管理器来执行此操作。
不幸的是,关于如何在捆绑包中包含特定文件或目录,关于AppAsset
和资产包的文档根本不清楚。我唯一看到的是如何使用$css
,$js
变量指定目的地。对于输入目录,我只看到$ sourcePath。这是否意味着我必须为每个javascript,css,image等文件创建一个单独的包(和$sourcePath
)。那是很多捆绑!当然,有一些方法可以在一个包中包含多个资产文件。有人能告诉我怎么样?
答案 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可访问的文件夹中。