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&amp;mysql(三)
Oct 09 PHP
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
浅谈PHP中JSON数据操作
Jul 01 PHP
php获取错误信息的方法
Jul 17 PHP
php实现Mysql简易操作类
Oct 11 PHP
php实现简单的上传进度条
Nov 17 PHP
PHP实现linux命令tail -f
Feb 22 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
php实现的http请求封装示例
Nov 08 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
Oct 10 PHP
laravel实现简单用户权限的示例代码
May 28 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 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,不用COM,生成excel文件
2006/10/09 PHP
PHP、Python和Javascript的装饰器模式对比
2015/02/03 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
PHP通过加锁实现并发情况下抢码功能
2016/08/10 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
jquery实现图片随机排列的方法
2015/05/04 Javascript
hammer.js实现图片手势放大效果
2017/08/29 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
Vue导出json数据到Excel电子表格的示例
2017/12/04 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
2018/12/28 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
django实现用户登陆功能详解
2017/12/11 Python
用 Python 连接 MySQL 的几种方式详解
2018/04/04 Python
python中的常量和变量代码详解
2018/07/25 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
python实现加密的方式总结
2020/01/19 Python
关于多元线性回归分析——Python&amp;SPSS
2020/02/24 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
区域销售主管岗位职责
2014/06/15 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
自我检讨书范文
2015/01/28 职场文书
公司老总年会致辞
2015/07/30 职场文书
初中同学会致辞
2015/08/01 职场文书
法制教育主题班会
2015/08/13 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
二年级作文之动物作文
2019/11/13 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js