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 相关文章推荐
Access数据库导入Mysql的方法之一
Oct 09 PHP
PHP 加密解密内部算法
Apr 22 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
Jun 30 PHP
simplehtmldom Doc api帮助文档
Mar 26 PHP
php存储过程调用实例代码
Feb 03 PHP
thinkphp连贯操作实例分析
Nov 22 PHP
简介PHP的Yii框架中缓存的一些高级用法
Mar 29 PHP
PHP书写格式详解(必看)
May 23 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
Dec 15 PHP
php从身份证获取性别和出生年月
Feb 09 PHP
Zend Framework数据库操作技巧总结
Feb 18 PHP
php-app开发接口加密详解
Apr 18 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
Javascript Select操作大集合
2009/05/26 Javascript
js 加载并解析XML字符串的代码
2009/12/13 Javascript
js multiple全选与取消全选实现代码
2012/12/04 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
Javascript浅谈之this
2013/12/17 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
JavaScript中的anchor()方法使用详解
2015/06/08 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
vue.js学习笔记之绑定style样式和class列表
2016/10/31 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
JavaScript 下载svg图片为png格式
2018/06/21 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
2018/09/27 Javascript
从vue源码看props的用法
2019/01/09 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
小程序新版订阅消息模板消息
2019/12/31 Javascript
跟老齐学Python之有容乃大的list(4)
2014/09/28 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
实践Vim配置python开发环境
2018/07/02 Python
Django分页功能的实现代码详解
2019/07/29 Python
很酷的小工具和电子产品商城:GearBest
2016/11/19 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
荷兰美妆护肤品海淘网站:Beautinow(中文)
2020/11/22 全球购物
购房意向书范本
2014/04/01 职场文书
mysql使用instr达到in(字符串)的效果
2022/04/03 MySQL