母版页
最后更新于:2022-04-01 11:17:12
### 静态资源引用
>[danger] Yii自带的Assets功能极大的增加了学习成本,因此暂定去除此功能。
>请参考 http://www.yiichina.com/doc/guide/2.0/structure-assets
1. 明确web目录下assets、css、js、images这几个目录的作用。
2. 新建web\lib目录,把第三方资源库放到这个目录中。
3. 修改母版页代码。
~~~
//AppAsset::register($this);
# 头部
<?php $this->head() ?>
<?= Html::cssFile('@web/lib/bootstrap/css/bootstrap.min.css') ?>
<?= Html::cssFile('@web/css/bootstrap-theme.css') ?>
<?= Html::cssFile('@web/css/site.css') ?>
# 尾部
<?= Html::jsFile('@web/lib/jquery/jquery.min.js') ?>
<?= Html::jsFile('@web/lib/bootstrap/js/bootstrap.min.js') ?>
<?= Html::jsFile('@web/lib/yii/yii.js') ?>
<?= Html::jsFile('@web/lib/yii/yii.activeForm.js') ?>
<?= Html::jsFile('@web/lib/yii/yii.validation.js') ?>
<?= Html::jsFile('@web/js/site.js') ?>
<?php if (isset($this->blocks['script'])): ?>
<?= $this->blocks['script'] ?>
<?php endif ?>
<?php $this->endBody() ?>
</body>
~~~
### 改造Navbar
>[success] 避免使用Widgets控件,尽量做到前后端分离。
~~~
<nav class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<a href="<?= Yii::$app->homeUrl ?>" class="navbar-brand">My Company</a>
</div>
<ul class="nav navbar-nav navbar-right">
...
</ul>
</div>
</nav>
~~~
### 数据块
默认数据块:$content
自定义数据块:
1、在母版页中
~~~
<?php if (isset($this->blocks['script'])): ?>
<?= $this->blocks['script'] ?>
<?php else: ?>
... 默认内容 ...
<?php endif ?>
~~~
2、在内容View中
~~~
<?php $this->beginBlock('script'); ?>
...content of script block...
<?php $this->endBlock(); ?>
~~~