Yii2将资产指定给特定布局
我有一个应用程序资产,它为应用程序中的所有视图注册Yii2将资产指定给特定布局,yii2,assets,Yii2,Assets,我有一个应用程序资产,它为应用程序中的所有视图注册 class AppAsset extends AssetBundle { public $basePath = '@webroot'; public $baseUrl = '@web'; public $css = [ '/plugins/font-awesome/css/font-awesome.min.css', '/dist/css/adminlte.min.css',
class AppAsset extends AssetBundle
{
public $basePath = '@webroot';
public $baseUrl = '@web';
public $css = [
'/plugins/font-awesome/css/font-awesome.min.css',
'/dist/css/adminlte.min.css',
'https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700'
];
public $js = [
'/plugins/jquery/jquery.min.js',
'/plugins/bootstrap/js/bootstrap.bundle.min.js',
'/dist/js/adminlte.min.js'
];
public $depends = [
];
}
现在,我正在尝试为站点的其他部分创建一个具有不同样式的新资源,我想将我的新资源分配给我的布局
main_statistisc.php
。但我不知道如何将其分配给我的新布局,目前我只使用registerJsFile
registercsfile
,但默认的AppAsset
样式仍然保留。如何将新资产用于特定布局/视图?看,资产是在布局中手动注册的,因此为所有视图注册的应用程序资产可能只是在layouts\main.php
视图中注册为:
/* @var $content string */
use yii\helpers\Html;
...
use common\widgets\Alert;
AppAsset::register($this); // This one
?>
您可以以同样的方式在新布局main\u statistisc.php
中注册AppAssetStats.php
,并在所需的控制器中设置新布局
您的布局main\u statistisc.php
:
use frontend\assets\AppAsset;
...
AppAssetStats::register($this); // Your new asset
?>
和您的控制器:
class SiteController extends Controller
{
public $layout = 'main_statistisc'; //
确保在main_statistisc.php
中没有AppAsset::register($this)
行,这样它就不会与您的新资产冲突
您可以从Yii2资产文档中获得有关资产的其他信息:
…以及有关布局和视图的其他信息:
在布局文件中注册资产文件
<?php
use frontend\assets\AppAssetStats;
AppAssetStats::register($this);
?>