我有一个应用程序资产,它已在应用程序中的所有视图中注册。
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 = [
];
}
现在,我正在尝试为网站的其他部分创建一个具有不同样式AppAssetStats.php
的新内容,并且我想将新资源分配到我的布局main_statistisc.php
。但我不知道如何将其分配给我的新布局,目前我只使用registerJsFile
registerCssFile
,但默认的AppAsset
样式仍然存在。我如何将我的新资产用于特定的布局/视图?
答案 0 :(得分:0)
看,资产是在布局中手动注册的,因此为所有视图注册的application asset
可能只是在layouts\main.php
视图中注册为:
/* @var $content string */
use yii\helpers\Html;
...
use common\widgets\Alert;
AppAsset::register($this); // This one
?>
您可以以相同的方式将AppAssetStats.php
注册到新版面main_statistisc.php
,并在所需的控制器中设置新版面
您的布局main_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资产文档中获得的资产的其他信息:
Yii2 Assets
..以及有关布局和视图的其他信息:
Yii2 Views and Layouts
答案 1 :(得分:0)
在布局文件中注册资产文件。
<?php
use frontend\assets\AppAssetStats;
AppAssetStats::register($this);
?>