Yii2将资产分配给特定布局

时间:2018-06-05 20:22:57

标签: 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',
        '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样式仍然存在。我如何将我的新资产用于特定的布局/视图?

2 个答案:

答案 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);
?>