Yii2 加载css、js 载静态资源的方法


Posted in PHP onMarch 10, 2017

应用场景

Yii2提供了AppAsset类管理静态资源,在使用Yii2 布局模板时,如果想在某个页面内部写一段js 并且在页面底部,如果直接使用 script 标签是不可以的。

使用AppAsset类管理静态资源

打开assetsAppAsset.php,定义 addJs(),addCss() 分别用于在静态页面引入外部js、css 文件

1、修改AppAsset.php文件代码

namespace backend\assets;
use yii\web\AssetBundle;
/**
 * @author Qiang Xue 
 * @since 2.0
 */
class AppAsset extends AssetBundle
{
  public $basePath = "@webroot";
  public $baseUrl = "@web";
  //默认自动加载样式
  public $css = [
    "css/site.css",
  ];
  //默认自动加载js
  public $js = [
  ];
  //依赖关系管理
  public $depends = [
    "yii\web\YiiAsset",
    "yii\bootstrap\BootstrapAsset",
  ];  
  //定义按需加载JS方法,注意加载顺序在最后 
  public static function addJs($view, $jsfile) { 
    $view->registerJsFile(
      $jsfile, 
      [
        AppAsset::className(), 
        "depends" => "backend\assets\AppAsset"
      ]
    ); 
  } 
  //定义按需加载css方法,注意加载顺序在最后 
  public static function addCss($view, $cssfile) { 
    $view->registerCssFile(
      $cssfile, 
      [
       AppAsset::className(), 
       "depends" => "backend\assets\AppAsset"
      ]
    ); 
  } 
}

2、在静态页面调用AppAsset.php

<?php

use backend\assets\AppAsset;
AppAsset::register($this);
AppAsset::addJs($this,Yii::$app->request->baseUrl."/js/a.js");
AppAsset::addCss($this,Yii::$app->request->baseUrl."/css/b.css");
?>

在网站页面底部加载javascript代码

网页内部的js文件或代码,根据页面加载顺序,避免执行js时间过程导致页面空白,导致用户体验不好问题。一般放置在网页底部</body>的后面。

方案一

<?php
$this->registerJs("
  $(function () {
  //为所欲为的写你想要写的js代码吧
  
  });
", \yii\web\View::POS_END);

方案二

<?php $this->beginBlock('js') ?> 

  //js代码
  
<?php $this->endBlock() ?> 
<?php $this->registerJs($this->blocks['js'], \yii\web\View::POS_END); ?>

解决Yii2在页面底部加载JS,语法提示失效

加入script 标签即可,注意只有 方案二有效,知道有其他方法的 ,望告知,谢谢!

<script type="text/javascript">
<?php $this->beginBlock('js') ?> 

  //js代码
  
<?php $this->endBlock() ?> 
<?php $this->registerJs($this->blocks['js'], \yii\web\View::POS_END); ?> 
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 缓存实现代码及详细注释
May 16 PHP
php INI配置文件的解析实现分析
Jan 04 PHP
PHP 八种基本的数据类型小结
Jun 01 PHP
php 按指定元素值去除数组元素的实现方法
Nov 04 PHP
php并发对MYSQL造成压力的解决方法
Feb 21 PHP
探讨PHP调用时间格式的参数详解
Jun 06 PHP
php列出mysql表所有行和列的方法
Mar 13 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
详解PHP中的Traits
Jul 29 PHP
深入理解PHP中的empty和isset函数
May 26 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
Feb 04 PHP
Yii2压缩PHP中模板代码的输出问题
Aug 28 PHP
php pdo操作数据库示例
Mar 10 #PHP
yii2简单使用less代替css示例
Mar 10 #PHP
在Mac OS下搭建LNMP开发环境的步骤详解
Mar 10 #PHP
Yii2.0中使用js异步删除示例
Mar 10 #PHP
php实现购物车功能(以大苹果购物网为例)
Mar 09 #PHP
PHP用户管理中常用接口调用实例及解析(含源码)
Mar 09 #PHP
php获取字符串前几位的实例(substr返回字符串的子串用法)
Mar 08 #PHP
You might like
PHP通过串口实现发送短信
2015/07/08 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
jquery获取input表单值的代码
2010/04/19 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
js实现日期级联效果
2014/01/23 Javascript
jQuery实现当按下回车键时绑定点击事件
2014/01/28 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
jQuery前端开发35个小技巧
2016/05/24 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
详解使用nvm安装node.js
2017/07/18 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
javascript少儿编程关于返回值的函数内容
2018/05/27 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
[51:28]EG vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/16 DOTA
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
2017/03/16 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
python实现nao机器人身体躯干和腿部动作操作
2019/04/29 Python
Python3.5集合及其常见运算实例详解
2019/05/01 Python
如何更优雅地写python代码
2019/07/02 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
2021/01/07 Python
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
艺术系应届生的自我评价
2013/10/19 职场文书
工商学院毕业生自荐信
2013/11/12 职场文书
教师实习自我鉴定
2013/12/18 职场文书
家长会欢迎标语
2014/06/24 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书
解决mysql的int型主键自增问题
2021/07/15 MySQL