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 相关文章推荐
打造计数器DIY三步曲(中)
Oct 09 PHP
PHP和XSS跨站攻击的防范
Apr 17 PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
Mar 06 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
Jun 18 PHP
php单例模式示例分享
Feb 12 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
PHP Mysqli 常用代码集合
Nov 12 PHP
PHP延迟静态绑定使用方法实例解析
Sep 05 PHP
PHP获取类私有属性的3种方法
Sep 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
收音机的保养
2021/03/01 无线电
PHP版自动生成文章摘要
2008/07/23 PHP
php 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
php检测图片木马多进制编程实践
2013/04/11 PHP
php实现12306火车票余票查询和价格查询(12306火车票查询)
2014/01/14 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
js 页面关闭前的出现提示的实现代码
2011/05/25 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
Javascript变量的作用域和作用域链详解
2015/04/02 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
JavaScript代码性能优化总结(推荐)
2016/05/16 Javascript
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
原生小程序封装跑马灯效果
2020/10/21 Javascript
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
python Flask 装饰器顺序问题解决
2018/08/08 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
python简单区块链模拟详解
2019/07/03 Python
Python 3 实现定义跨模块的全局变量和使用教程
2019/07/07 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
北美领先的牛仔品牌:Buffalo David Bitton
2017/05/22 全球购物
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
销售求职信范文
2014/05/26 职场文书
英语专业自荐书
2014/06/13 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
就业意向书范本
2015/05/11 职场文书
单位考核鉴定意见
2015/06/05 职场文书
祝福语集锦:朋友新店开业祝福语
2019/12/10 职场文书
ORACLE数据库对long类型字段进行模糊匹配的解决思路
2021/04/07 Oracle
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
MySQL RC事务隔离的实现
2022/03/31 MySQL