YII assets使用
为什么用YII assets
1.assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问protected下面的文件 ,但是我们又希望将module单独出来,所以需要使用发布,即将一个目录下的文件复制一份到assets下面方便通过url访问
$assets = Yii::getPathOfAlias('ext').'/css';
//$baseUrl = Yii::app()->getAssetManager()->publish($assets);
$baseUrl = Yii::app()->assetManager->publish($assets); //extensions/css发布到assets的创建一个随机不冲突的文件夹下
Yii::app()->clientScript->registerCssFile($baseUrl.'/main.css');//引用assets下面的main.css
2.如果一个模块需要添加使用资源,直接从webroot中引用添加即可。
但是试图创建一个模块能够在任何地方引用,且资源独立并能够避免命名冲突 。
你如何保证你的文件名不会与一些零散的应用程序的尝试使用相同名称的文件冲突,对于js,images,css也一样。
通过CAssetManager,Yii::app()->assetManager能够自动的将私有资源publish到公共目录下webroot/assets
下面以admin module为例
1、把需要用到的资源放在modules/admin/assets下。
2、然后通过 CAssetManager,Yii::app()->assetManager能够自动的将私有资源publish到公共目录下 网站目录/assets
3、Yii会自动在网站目录的/assets下创建一个随机不冲突的文件夹,如2b31b42b,并把你的modules/admin/assets目录下的文件拷贝过去。
通过如下代码获得,修改protected\modules\admin\AdminModule.php文件,
<?php
class AdminModule extends CWebModule
{private $_assetsUrl;public function getAssetsUrl(){if($this->_assetsUrl===null)$this->_assetsUrl=Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('application.modules.admin.assets'));return $this->_assetsUrl;}public function setAssetsUrl($value){$this->_assetsUrl=$value;}
}
然后,在/protected/modules/admin/views/layouts/main.php中
使用$this->module->assetsUrl就可以调用你的css等文件了。
<link rel="stylesheet" type="text/css" href="<?php echo $this->module->assetsUrl; ?>/css/screen.css"/>
使用前强制更新asset
$baseJsUrl = Yii::app()->getAssetManager()->publish($baseJsPath, false, -1, YII_DEBUG);
YII assets使用相关推荐
- yii框架的下拉框多选,设置默认值等(dropDownList)
一.前言 根据需求,需要更改下拉框为多选框.本来以为只是很简单的东西,但是实际修改起来却碰到不少bug,多选框无法选中,给多选框赋默认值等.这里记录一下 二.修改单选下拉框为多选下拉框 echo $f ...
- Yii2 前端资源使用
YII2 前端资源 定义资源包 <?phpnamespace app\assets;use yii\web\AssetBundle;class AppAsset extends AssetBun ...
- 通过yiic来创建yii应用
一.通过yiic来创建yii应用(*yiic命令在yii下载包的framework目录下)1.把你自已的php环境添加到系统环境变量中. 2.在命令行下输入: yiic webapp 位置\名称 yi ...
- Application runtime path /opt/lampp/htdocs/yii/test/protected/runtime is not valid. 错误
原因:把windows版的Yii框架写的程序中的拷到Linux去,assets和runtime目录对Group和其他的权限不够. 解决方案:点击这2个文件的属性,属性框全选好了,权限777了. cd ...
- php配置默认index.php,Apache的vhost中配置默认访问入口index-test.php的方法(Yii)
最近的参与的Yii项目有多个分支,所以在入口文件里面有区分(index.php index-test.php index-beta.php)等.不同的入口文件对应不同的环境和配置. 这个时候在本地建立 ...
- Yii 多应用多模块
本文以YII 2.0.7为例. 概述 首先看看多应用和多模块的特点: 多应用的特点: 独立配置文件 独立域名 多模块的特点: 统一配置文件 统一域名 那么,实际该怎么决定使用多应用还是多模块呢? 对于 ...
- [Yii Framework] Yii如何实现前后台的session分离
Yii Framework实现前后台frontend,backend分离的方法有几种,总结如下: 1. 分开入口文件 目录结构 index.php admin.php assets/ ...其它目录 ...
- Yii 框架学习--03 多应用多模块
本文以YII 2.0.7为例. 概述 首先看看多应用和多模块的特点: 多应用的特点: 独立配置文件 独立域名 多模块的特点: 统一配置文件 统一域名 那么,实际该怎么决定使用多应用还是多模块呢? 对于 ...
- Yii框架特点及测试考虑
1. 简介 Yii 是一个基于部件.用于开发大型 Web 应用的高性能 PHP 框架.它将 Web 编程中的可重用性发挥到极致,能够显著加速开发进程.Yii(读作"易")代表简单( ...
最新文章
- Android中Gallery和ImageSwitcher的使用
- java 网站计数器_Java Bean实现网页来访计数器
- [µC/GUI 学习]µC/GUI移植
- postgresql是如何求年龄的_Postgresql 通过出生日期获取年龄的操作
- echarts 获取点击的y轴数值_用 Python 自动获取NBA现役球员的职业生涯数据曲线
- rr计算机专业英语,《计算机专业英语》电子教本8.pdf
- python中os模块里有哪些类_python-os模块的常用方法
- radvd移植到arm交叉编译问题解决
- Python学习(六) Python数据类型:字典(重要)
- python操作mysql时mysqldb和pymysql的安装和使用
- python手机端抢票大麦网_大麦网抢票攻略1.0
- python立方根求解_python – 如何获得立方根的整数?
- unsigned详讲(干货满满)
- fluxbox_使用Fluxbox Linux桌面作为窗口管理器
- 中文数藏与CIC国信公链等有关机构顺利召开国内数字藏品规划标准研讨会
- 揭秘5G+AI时代的机器人世界!【附报告下载】
- ChatGPT小技巧:论文降重
- 搭搭云 新世代超级应用平台 JNPF快速开发平台框架 3.4.7最新版源码
- vue中使用element-tiptap富文本编辑器
- 2021章节练习基础(案例精选)1-10