资产包生成空JavaScript和CSS文件
namespace frontend\assets;
return [
'bundles' => [
'frontend\assets\AppAsset',
],
'targets' => [
'frontend\assets\AppAsset' => [
'basePath' => 'e:/path/yii2.loc/www',
'baseUrl' => '',
'js' => 'js/{ts}.js',
'css' => 'css/{ts}.css',
],
],
'assetManager' => [
'basePath' => 'e:/path/yii2.loc/www/assets',
'baseUrl' => '',
],
];
config.php
return [
'bundles' => [
'frontend\assets\AppAsset',
],
'targets' => [
'frontend\assets\AppAsset' => [
'basePath' => 'e:/path/yii2.loc/www',
'baseUrl' => '',
'js' => 'cache/{ts}.js',
'css' => 'cache/{ts}.css',
],
],
'assetManager' => [
'basePath' => 'e:/path/yii2.loc/www/assets',
'baseUrl' => '',
],
];
然后在控制台
yii asset e:\path\config.php e:\path\compressed.php
//compresed.php it's result file with name of compressed files
在配置中
'assetManager' => [
'bundles' => require dirname(__DIR__) . '/assets/compressed.php',
],
CSS和JavaScript文件位于以下目录中:
e:/path/yii2.loc/www/css
然后呢
e:/path/yii2.loc/www/js
捆绑生成空以:
e:/path/yii2.loc/www/cache/css和e:/path/yii2.loc/www/cache/js
我做错了什么?
3条答案
按热度按时间nkkqxpd91#
在config.php中,尝试配置组件'assetManager',如以下LOC:
k4aesqcs2#
您应该设置别名@web和@webroot,因为此文件将在控制台脚本中使用。然后使用别名设置basePath和baseUrl参数
查看更多信息https://www.yiiframework.com/doc/guide/2.0/en/structure-assets
dz6r00yl3#
根据提供的配置,资产包似乎是在正确的目录中生成的,即e:/path/yii2.loc/www/cache/。但是,生成的文件是空的,因为资产包无法找到要包含在包中的源文件。
要修复此问题,您需要确保AppAssetbundle的basePath属性指向您的源CSS和JS文件所在的正确目录。根据您的目录结构,basePath属性的正确目录应该是e:/path/yii2.loc/www。
因此,您需要更新AppAsset类,如下所示:
这里我们将basePath属性设置为**@webroot**,相当于e:/path/yii2.loc/www,$css和**$js属性中应该包含源CSS和JS文件相对于basePath的路径。
更新完AppAsset类后,您可以再次运行yiiasset命令重新生成资产包,这应该会在e:/path/yii2.loc/www/cache/**目录下生成正确的CSS和JS文件。