这篇文章主要介绍了PHP的Yii框架中对前端资源包的使用,列举了Yii中一些JavaScript和CSS常用资源,需要的朋友可以参考下
Yii中的资源是和Web页面相关的文件,可为CSS文件,JavaScript文件,图片或视频等, 资源放在Web可访问的目录下,直接被Web服务器调用。
通过程序自动管理资源更好一点,例如,当你在页面中使用 yii\jui\DatePicker 小部件时, 它会自动包含需要的CSS和JavaScript文件,而不是要求你手工去找到这些文件并包含, 当你升级小部件时,它会自动使用新版本的资源文件,在本教程中,我们会详述Yii提供的强大的资源管理功能。
资源包
Yii在资源包中管理资源,资源包简单的说就是放在一个目录下的资源集合, 当在视图中注册一个资源包,在渲染Web页面时会包含包中的CSS和JavaScript文件。
定义资源包
资源包指定为继承yii\web\AssetBundle的PHP类,包名为可自动加载的PHP类名, 在资源包类中,要指定资源所在位置,包含哪些CSS和JavaScript文件以及和其他包的依赖关系。
如下代码定义基础应用模板使用的主要资源包:
<?phpnamespace app\assets;use yii\web\AssetBundle;class AppAsset extends AssetBundle{ public $basePath = '@webroot'; public $baseUrl = '@web'; public $css = [ 'css/site.css', ]; public $js = [ ]; public $depends = [ 'yii\web\YiiAsset', 'yii\bootstrap\BootstrapAsset', ];}
如上AppAsset 类指定资源文件放在 @webroot 目录下,对应的URL为 @web,资源包中包含一个CSS文件 css/site.css,没有JavaScript文件, 依赖其他两个包 yii\web\YiiAsset 和 yii\bootstrap\BootstrapAsset, 关于yii\web\AssetBundle 的属性的更多详细如下所述:
-
yii\web\AssetBundle::sourcePath: 指定包包含资源文件的根目录, 当根目录不能被Web访问时该属性应设置,否则,应设置 yii\web\AssetBundle::basePath 属性和yii\web\AssetBundle::baseUrl。 路径别名 可在此处使用;
-
yii\web\AssetBundle::basePath: 指定包含资源包中资源文件并可Web访问的目录, 当指定yii\web\AssetBundle::sourcePath 属性, 资源管理器 会发布包的资源到一个可Web访问并覆盖该属性, 如果你的资源文件在一个Web可访问目录下,应设置该属性,这样就不用再发布了。 路径别名 可在此处使用。
yii\web\AssetBundle::baseUrl: 指定对应到yii\web\AssetBundle::basePath目录的URL, 和 yii\web\AssetBundle::basePath 类似,如果你指定 yii\web\AssetBundle::sourcePath 属性, 资源管理器 会发布这些资源并覆盖该属性,路径别名 可在此处使用。
yii\web\AssetBundle::js: 一个包含该资源包JavaScript文件的数组,注意正斜杠"/"应作为目录分隔符, 每个JavaScript文件可指定为以下两种格式之一:
-
相对路径表示为本地JavaScript文件 (如 js/main.js),文件实际的路径在该相对路径前加上 *本文来@源gao@daima#com搞(%代@#码@网2
搞代gaodaima码
yii\web\AssetManager::basePath,文件实际的URL在该路径前加上yii\web\AssetManager::baseUrl。
-
绝对URL地址表示为外部JavaScript文件,如 http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js 或//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js.
-
yii\web\AssetBundle::css: 一个包含该资源包JavaScript文件的数组,该数组格式和 yii\web\AssetBundle::js 相同。
-
yii\web\AssetBundle::depends: 一个列出该资源包依赖的其他资源包(后两节有详细介绍)。
-
yii\web\AssetBundle::jsOptions: 当调用yii\web\View::registerJsFile()注册该包 每个 JavaScript文件时, 指定传递到该方法的选项。
-