我创建了一个主题,它的工作文件,但其中一个问题是资产文件来自主题目录。
我在以下路径中创建主题
/var/www/html/project_name/themes/theme_name
我的主题文件结构是
<theme_name>
-layouts
main.php
-css
style.css
-js
script.js
-images
logo.jpg
我将所有css,js文件路径放在assets/AppAssets.php
中,所以我的AppAssets.php
看起来像
namespace app\assets;
use yii\web\AssetBundle;
/**
* @author Qiang Xue <qiang.xue@gmail.com>
* @since 2.0
*/
class AppAsset extends AssetBundle
{
public $sourcePath = '@app/themes/bluehorse';
public $css = [
'css/style.css'
];
public $js = [
script.js
];
public $depends = [
'yii\web\YiiAsset',
'yii\bootstrap\BootstrapAsset',
];
}
我的布局文件(例如 - main.php
)看起来像
<?php
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use app\assets\AppAsset;
AppAsset::register($this);
...................
?>
您可以看到我使用AppAssets
作为我的主题资源。但我不想使用AppAssets
。我想在我的主题中创建自己的资源。我想把所有css,js路径放在我的获奖assets
文件中,该文件将放在我的主题文件夹中。这是可能的??我需要你的帮助。
答案 0 :(得分:1)
您可以将自己的资源放在主题中(完全在视图中):
/* @var $this yii\web\View */
$this->registerJsFile('@themes/theme_name/js/name.js', ['depends' => 'yii\web\YiiAsset']) ;
$this->registerCssFile('@themes/theme_name/css/name.css' ) ;
可以改变控制器中的布局,如:
public $layout = 'another_name_layout';
有很多方法可以提供更改主题,其中之一是:
if ($layout = 'another_name_layout') {
$this->registerCssFile('@web/css/name.css' ) ;
}
答案 1 :(得分:1)
您可以在目录资源中插入资产(css和js)。 你必须创建像appAssets这样的资产文件,添加你的自定义css和js。 小心&#34; UrlPath&#34;和&#34; BasePath&#34;必须是你的主题目录。
注意!!!您必须在主布局中设置以下内容:<?php $this->beginPage() ?>
<?php $this->beginBody() ?>
<?php $this->head() ?>
<?php $this->endBody() ?>
<?php $this->endPage() ?>