Yii2 加载css、js 载静态资源的方法
应用场景
Yii2提供了AppAsset类管理静态资源,在使用Yii2布局模板时,如果想在某个页面内部写一段js并且在页面底部,如果直接使用script标签是不可以的。
使用AppAsset类管理静态资源
打开assetsAppAsset.php,定义addJs(),addCss()分别用于在静态页面引入外部js、css文件
1、修改AppAsset.php文件代码
namespacebackend\assets;
useyii\web\AssetBundle;
/**
*@authorQiangXue
*@since2.0
*/
classAppAssetextendsAssetBundle
{
public$basePath="@webroot";
public$baseUrl="@web";
//默认自动加载样式
public$css=[
"css/site.css",
];
//默认自动加载js
public$js=[
];
//依赖关系管理
public$depends=[
"yii\web\YiiAsset",
"yii\bootstrap\BootstrapAsset",
];
//定义按需加载JS方法,注意加载顺序在最后
publicstaticfunctionaddJs($view,$jsfile){
$view->registerJsFile(
$jsfile,
[
AppAsset::className(),
"depends"=>"backend\assets\AppAsset"
]
);
}
//定义按需加载css方法,注意加载顺序在最后
publicstaticfunctionaddCss($view,$cssfile){
$view->registerCssFile(
$cssfile,
[
AppAsset::className(),
"depends"=>"backend\assets\AppAsset"
]
);
}
}
2、在静态页面调用AppAsset.php
request->baseUrl."/js/a.js"); AppAsset::addCss($this,Yii::$app->request->baseUrl."/css/b.css"); ?>
在网站页面底部加载javascript代码
网页内部的js文件或代码,根据页面加载顺序,避免执行js时间过程导致页面空白,导致用户体验不好问题。一般放置在网页底部