Здравствуйте!
Собственно вот такой вопрос: На проекте YII 2 есть класс AppAssets, в данном классе указаны css и js файлы которые должны быть подключены к проекту.
class AppAsset extends AssetBundle
{
public $sourcePath = '@app/assets/themes/';
public $css = [
'css/normalize.css',
'css/template_2.css',
'css/template.css',
'css/roboto.css',
'css/jquery.selectbox.css',
'css/jquery.ui.css',
'css/icheck.css'
];
public $js = [
'js/vendors/jquery-1.7.2.min.js',
'js/ui/jquery.ui.core.js',
'js/ui/jquery.ui.widget.js',
'js/ui/jquery.ui.autocomplete.js',
'js/ui/jquery.ui.dialog.js',
'js/vendors/jquery.maskedinput.js',
'js/vendors/jquery.selectbox-0.2.min.js',
'js/vendors/jquery.html5-placeholder-shim.js',
'js/vendors/jquery.icheck.min.js',
'js/vendors/underscore-min.js',
'themes/smart_admin/theme/js/plugin/jquery-validate/jquery.validate.min.js',
'js/public/common.js',
'js/page/evac_request.js',
'js/page/buy_cards.js'
];
public $jsOptions = [
'position' => \yii\web\View::POS_HEAD
];
public $cssOptions = [
'position' => \yii\web\View::POS_HEAD
];
public $depends = [
'yii\web\YiiAsset',
];
public $publishOptions = [
'forceCopy' => true
];
}
Далее есть настроенный файл для сборки, jar файлы компрессоров лежат в корне (compiler.jar и yuicompressor.jar)
Yii::setAlias('@webroot', __DIR__ . '/../web');
Yii::setAlias('@web', '/');
return [
// Adjust command/callback for JavaScript files compressing:
'jsCompressor' => 'java -jar compiler.jar --js {from} --js_output_file {to}',
// Adjust command/callback for CSS files compressing:
'cssCompressor' => 'java -jar yuicompressor.jar --type css {from} -o {to}',
// The list of asset bundles to compress:
'bundles' => [
'app\assets\AppAsset',
'yii\web\YiiAsset',
'yii\web\JqueryAsset',
],
// Asset bundle for compression output:
'targets' => [
'app\assets\AppAsset' => [
'basePath' => '@webroot/',
'baseUrl' => '@web/',
'css' => 'css/all-front-{hash}.css',
'js' => 'js/all-front-{hash}.js',
'depends' => [
// Include all assets shared between 'backend' and 'frontend'
'app\assets\AppAsset',
'yii\web\YiiAsset',
'yii\web\JqueryAsset'
],
],
],
// Asset manager configuration:
'assetManager' => [
'basePath' => '@webroot/assets',
'baseUrl' => '@web/assets',
],
];
Компиляция запускается командой
sudo ./yii asset config/assets.php assets/assets_min.php
Нужные минифицированные файлы появляются где должны
- all-front-e9bcdd242e24b630ddff6b382bbc843c.css
- all-front-1bf96460d930621ec14c72db351fefc7.js
Однако, как не странно в итоговом assets_min.php эти минифицированные файлы не подключены, а за место них свалены все файлы проекта:
return [
'app\\assets\\AppAsset' => [
'class' => 'app\\assets\\AppAsset',
'basePath' => '@webroot/',
'baseUrl' => '@web/',
'js' => [
'js/vendors/jquery-1.7.2.min.js',
'js/ui/jquery.ui.core.js',
'js/ui/jquery.ui.widget.js',
'js/ui/jquery.ui.autocomplete.js',
'js/ui/jquery.ui.dialog.js',
'js/vendors/jquery.maskedinput.js',
'js/vendors/jquery.selectbox-0.2.min.js',
'js/vendors/jquery.html5-placeholder-shim.js',
'js/vendors/jquery.icheck.min.js',
'js/vendors/underscore-min.js',
'themes/smart_admin/theme/js/plugin/jquery-validate/jquery.validate.min.js',
'js/public/common.js',
'js/page/evac_request.js',
'js/page/buy_cards.js',
],
'css' => [
'css/normalize.css',
'css/template_2.css',
'css/template.css',
'css/roboto.css',
'css/jquery.selectbox.css',
'css/jquery.ui.css',
'css/icheck.css',
],
],
'yii\\web\\JqueryAsset' => [
'sourcePath' => null,
'js' => [],
'css' => [],
'depends' => [
'app\\assets\\AppAsset',
],
],
'yii\\web\\YiiAsset' => [
'sourcePath' => null,
'js' => [],
'css' => [],
'depends' => [
'yii\\web\\JqueryAsset',
'app\\assets\\AppAsset',
],
],
];
Вопрос состоит в том:
почему в assets_min.php не генерируются пути к минифицированным файлам, а просто общий список файлов?