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 getsiteurl()函数
Sep 05 PHP
php 自写函数代码 获取关键字 去超链接
Feb 08 PHP
php 广告调用类代码(支持Flash调用)
Aug 11 PHP
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
PHP中call_user_func_array()函数的用法演示
Feb 05 PHP
解析PHP中empty is_null和isset的测试
Jun 29 PHP
destoon复制新模块的方法
Jun 21 PHP
PHP反向代理类代码
Aug 15 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
CI框架数据库查询之join用法分析
May 18 PHP
Yii视图操作之自定义分页实现方法
Jul 14 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
Oct 10 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+ACCESS 文章管理程序代码
2010/06/21 PHP
php微信开发之百度天气预报
2016/11/18 PHP
php基于dom实现的图书xml格式数据示例
2017/02/03 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
Jquery Validation插件防止重复提交表单的解决方法
2010/03/05 Javascript
node.js中的events.emitter.once方法使用说明
2014/12/10 Javascript
Bootstrap树形组件jqTree的简单封装
2016/01/25 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
jQuery插件HighCharts绘制2D带有Legend的饼图效果示例【附demo源码下载】
2017/03/10 Javascript
浅谈JS如何实现真正的对象常量
2017/06/25 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
Nodejs中的require函数的具体使用方法
2019/04/02 NodeJs
详解JavaScript 高阶函数
2020/09/14 Javascript
Python中pygame安装方法图文详解
2015/11/11 Python
有关Python的22个编程技巧
2018/08/29 Python
python将pandas datarame保存为txt文件的实例
2019/02/12 Python
微信小程序canvas实现水平、垂直居中效果
2020/02/05 HTML / CSS
英国足球店:UK Soccer Shop
2017/11/19 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
德国消费电子产品购物网站:Guter Kauf
2020/09/15 全球购物
质量工程师岗位职责
2013/11/16 职场文书
采购人员的个人自我评价
2014/01/16 职场文书
2013年研究生毕业感言
2014/02/06 职场文书
《雾凇》教学反思
2014/02/17 职场文书
财务主管岗位职责
2014/02/28 职场文书
搞笑征婚广告词
2014/03/17 职场文书
大学生应聘导游自荐信
2014/06/02 职场文书
接待员岗位职责
2015/02/13 职场文书
加薪申请报告范本
2015/05/15 职场文书
劳动仲裁调解书
2015/05/20 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android