Yii2引入css和js文件

引入方式有多种:

1、可以直接在视图页面上引入

<?php
use yii\helpers\Html;
?>
<?=Html::cssFile('@web/css/index.css')?>
<?=Html::jsFile('@web/js/jquery.min.js')?>

2、可以直接写原生代码引入,路径是项目目录/web/css 或者/js

<script src="js/nav.js"></script> 

3、可以使用assetBundle管理css样式及js脚本.
资源包定义:basic/assets/AppAsset.php

<?php
/**
 * @link http://www.yiiframework.com/
 * @copyright Copyright (c) 2008 Yii Software LLC
 * @license http://www.yiiframework.com/license/
 */

namespace app\assets;

use yii\web\AssetBundle;

/**
 * @author Qiang Xue <[email protected]>
 * @since 2.0
 */
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
        'css/base.css'
    ];
    public $js = [
        'js/sliders.js'
    ];
    public $depends = [ //依赖包,没有可以不写
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];

    //定义按需加载JS方法,注意加载顺序在最后
    public static function addScript($view, $jsfile) {
        $view->registerJsFile($jsfile, [AppAsset::className(), 'depends' => 'api\assets\AppAsset']);
    }  

   //定义按需加载css方法,注意加载顺序在最后
    public static function addCss($view, $cssfile) {
        $view->registerCssFile($cssfile, [AppAsset::className(), 'depends' => 'api\assets\AppAsset']);
    }
}

在视图文件开头写入:

<?php
use yii\helpers\Html;
use app\assets\AppAsset;

AppAsset::register($this);

?>

到现在为止,我们可以在浏览器上测试,发现并没有引入css和js文件,这里要注意了,我们还需要最后一步:
在视图文件中我们要加入一下代码(注:如果我们使用公共视图文件,可以加入到公共视图文件,如果没有使用,可以放到单独页面中)

<?php
   $this->beginPage()
?>
<?php $this->head() ?>
<?php $this->beginBody() ?>
<?php $this->endBody() ?>
<?php $this->endPage() ?>

4、不需要在资源包管理器中定义方法,只要在视图页面中直接引入即可

AppAsset::register($this);
//css定义一样
$this->registerCssFile('@web/css/font-awesome.min.css',['depends'=>['api\assets\AppAsset']]);  

 $this->registerJsFile('@web/js/jquery-ui.custom.min.js',['depends'=>['api\assets\AppAsset']]);
//$this->registerJsFile('@web/js/jquery-ui.custom.min.js',['depends'=>['api\assets\AppAsset'],'position'=>$this::POS_HEAD]);

转载链接:https://www.jianshu.com/p/45426d8b2c0e
yii2 在页面底部加载css和js:http://www.manks.top/article/yii2_load_js_css_in_end

原文地址:https://www.cnblogs.com/meetuj/p/11429017.html

时间: 2024-10-03 23:13:36

Yii2引入css和js文件的相关文章

引入CSS和JS文件时 到底应该在head标签中还是body中?

引入CSS在head中, JS建议在body的尾部引入; 这样有利于加载速度 <!DOCTYPE html> <html>   <head>      <!--网页页面字符集-->     <meta charset="utf-8">       <!--让IE使用最新的渲染模式-->     <meta http-equiv="X-UA-Compatible" content="

laravel引入css和js文件

laravel默认从public开始,所以静态文件放到public下开始,只需要把你想要加载的css文件和js文件放入public文件夹中即可. 这里以我用得layui为例: 在项目文件中加载即可: <link rel="stylesheet" href="{{URL::asset('layui-v2.5.4/layui/css/layui.css')}}"> <script type="text/javascript" src

MVC-采用Bundles方式引入css和js文件

优点:修改js或css时会自动生成hash版本号. 缺点:需要在BundleConfig中先添加对应的文件,然后在html中再引用对应的bundle,多操作了一步. web.config中 <compilation debug="true" targetFramework="4.5" /> 1.BundleConfig 如果是调试模式,前端页面会显示真实的js.css路径,生产环境是会显示前面的路径.在bundles中还可以使用通配符引用. bundle

CI框架引入外部css和js文件

首先在项目根目录下建立assets文件夹,在这个文件夹下再建立css和js文件夹分别放置css和js文件 然后,在项目根目录下建立.htaccess文件 内容如下: RewriteEngine on      RewriteCond $1 !^(index\.php|images|robots\.txt|js|css|upimg|artDialog|style|sphinx_auth|assets)      RewriteRule ^(.*)$ index.php/$1 [L] 把上面的ass

在引入的css或者js文件后面加参数的作用

有时候可能会遇到js或者css文件引用后传递参数: css和js带参数(形如.css?v=与.js?v=) <script type=”text/javascript” src=”jb51.js?version=1.2.6″></script> <link rel=’stylesheet’ href=’base.css?version=2.3.3′ type=’text/css’ /> 使用参数有两种可能: 第一.脚本并不存在,而是服务端动态生成的,因此带了个版本号,以

CSS 和 JS 文件合并工具

写 CSS 和 JavaScript 的时候, 我们会遇到一个两难的局面: 要么将代码写在一个大文件, 要么将代码分成多个文件. 前者导致文件难以管理, 代码复用性差, 后者则因为需要在载入多个文件令页面性能下降. 我们期望可以将代码细分成多个模块, 而在使用的时候可以合而为一. 本文会介绍一个 CSS 和 JS 的合并工具, 对模块化的文件进行管理. CSS 和 JS 合并工具的发展 对于 CSS/JS 合并和压缩的问题, 有很多解决方案, 我所在的团队也经历了几个阶段. 网站刚刚搭建的时候,

使用gulp自动化打包合并前端静态资源(CSS、JS文件压缩、添加版本号)

现在正在做的项目更新迭代比较频繁,会经常对前端代码打包部署,手动整合代码文件很麻烦并且浪费时间,所以决定使用gulp来代替手工完成这项工作. 前端静态资源在发版更新时会面临客户端浏览器缓存的问题(可参考这篇文章),解决这个问题可以采用两类方法:覆盖方法(引用资源时加版本号,不修改资源文件名).非覆盖方法(修改资源文件名),本篇文章主要采用的是第一种加版本号的方式,主要用gulp给静态资源自动加版本号和压缩CSS.JS. 原理:通过对JS,CSS文件内容进行Hash运算,生成一个文件的唯一Hash

JQuery 加载 CSS、JS 文件的方法有哪些?

在进行web前端开发(http://www.maiziedu.com/course/web-px/)时,我们可能会需要使用JQuery加载一个外部的css文件或者js文件,加载外部文件的方法有多种,下面具体看看各种加载方法 JS 方式加载 CSS.JS 文件: //加载 css 文件function includeCss(filename) { var head = document.getElementsByTagName('head')[0]; var link = document.cre

关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件

找了这么久资料,总算解决了 感谢博客园:http://www.cnblogs.com/xsht/p/5275081.html 感谢百度:http://zhidao.baidu.com/link?url=Vz4TlygvnMyYVj105bCuzkusjF0G5rM6opHvEzhcCaJK5s1gFUZ3PBgAWCNsfY1RmtPf4ZEo8EV_Gd7SYKV4S_ 在有Struts部署的Java EE环境中,我们一般把jsp页面写在WebRoot\WEB-INF\content 目录下,