为什么用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);
当使用
<?php Yii::app()->clientScript->registerCoreScript('jquery'); ?>
下不是jquery,而多出了如下图
因为CClientScript系统默认
public function getCoreScriptUrl() { if($this->_baseUrl!==null) return $this->_baseUrl; else return $this->_baseUrl=Yii::app()->getAssetManager()->publish(YII_PATH.'/web/js/source'); }
Jquery冲突问题解决方法
'clientScript'=>array( //'coreScriptUrl'=>'/js', // required to prevent asset publishing of core scripts 'scriptMap'=>array( //'*.js'=>false, 'jquery.js'=>false, //特定的 //'*.css'=>false, ), ),
通过设置coreScriptUrl阻止系统默认的
相关推荐
很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架
### 安装Yii框架的方法及常见问题解决 #### 一、前言 Yii 是一个高性能的 PHP 框架,适用于开发 Web 应用程序。它不仅提供了丰富的功能集,如 MVC 架构支持、数据库抽象层、缓存机制等,还具有高度可配置性和扩展性...
本文实例讲述了Yii框架中jquery表单验证插件用法。分享给大家供大家参考,具体如下: 运行效果图如下: 视图层: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
以下详细介绍Yii框架中用户登录后session丢失问题的解决方法。 首先,我们需要了解Yii框架中用户登录和session管理的基本原理。在Yii中,用户登录通常是通过认证组件(CWebUser)来完成的。当用户正确输入用户名和...
Yii Framework jQuery扩展 该扩展为提供了 。 有关许可证信息,请检查文件。 文档位于 。 安装 安装此扩展的首选方法是通过 。 php composer.phar require --prefer-dist yiisoft/yii-jquery
5. **Bootstrap**和**jQuery**:可能已经预装,作为前端开发的基础框架。 6. **文档**:可能包含Yii 2.0的官方文档,便于学习和参考。 学习Yii 2.0,你需要了解以下核心概念: - **组件系统**:Yii的基石,所有对象...
Yii框架是一款高效的PHP...同时,Yii社区活跃,有许多优秀的教程和示例代码供学习参考,遇到问题时也能得到及时的帮助。无论是初学者还是经验丰富的开发者,这些中文文档和教程都是学习和掌握Yii框架不可或缺的资源。
用于 showLoading jQuery 插件的 Yii2 扩展Yii2Codepen 插件提供了一种将加载指示器覆盖在任意内容上的巧妙方法(例如在 ajax 调用期间)。 安装 作曲家 只需在 composer.json 中添加扩展名: { "require" : { ...
4. jQuery集成:Yii2框架内置了对jQuery的支持,这使得开发者可以方便地利用jQuery强大的功能来增强前端体验。 5. 可扩展性:Yii2的模块化架构允许开发者创建可重用的模块,这有助于构建大型项目。 6. 安全性:Yii...
本教程将深入探讨Yii框架的核心概念和使用方法,同时提供一份中文手册教程,以便于中文使用者更好地理解和应用。 首先,Yii框架的核心特性包括MVC(模型-视图-控制器)设计模式、Active Record ORM(对象关系映射)...
"yii2 通用后台系统"是一个基于Yii2框架构建的企业级后台管理系统,旨在提供一套全面、高效的后台管理解决方案,包括用户管理、权限控制、数据统计等功能,帮助开发者快速搭建稳定且功能丰富的后台应用。 在Yii2...
Yii支持视图助手(Helper),如CHtml,提供了许多方便的HTML生成方法。同时,Yii的布局功能使得页面的头部、底部等公共部分可以被有效地重用。 控制器(CController)是处理用户请求的中心,它包含了动作(Action)...
12. 社区支持:Yii 拥有活跃的社区,提供丰富的扩展库和插件,以及详尽的文档和教程,便于开发者解决问题和学习新技术。 总的来说,“yii-1.0.4.r920”是 Yii 框架的一个重要里程碑,它为 PHP 开发者提供了一套强大...
1. **Yii2框架与Swoole的集成**:Yii2swoole是将Yii2框架与Swoole进行整合的扩展,允许Yii2应用利用Swoole的高性能特性。它提供了在Swoole环境下运行Yii2的基础设施,包括请求处理、事件监听、session和cookie管理等...
- 通过Yii的扩展机制,可以方便地集成第三方库,如jQuery和Bootstrap。 9. **性能优化**: - Yii内置了页面缓存、片段缓存和数据缓存,以及输出压缩,有效提升应用性能。 - 使用Yii的Profiler组件可以分析和优化...
10. **错误和日志管理**:Yii 提供了详细的错误报告和日志记录功能,有助于开发者追踪和修复问题。 在提供的“yii权威指南”中,你将找到关于Yii框架全面而深入的介绍,包括如何安装和配置环境,创建项目,理解框架...
Yii是一个高度集成的MVC框架,它为Web开发提供了全面的支持,包括但不限于MVC架构、对象关系映射(ORM)、国际化(I18N/L10N)、缓存机制、基于jQuery的AJAX支持、基于角色的访问控制(RBAC)、脚手架生成器、输入...
《深入理解Yii2.0》是一本干货。主要讲解Yii2.0及所代表的最新一代Web开发框架的新特性、新技术、新理念、新模式。 采用的方式是分析框架的源代码,尝试从根上进行理解和阐述,并融入个人使用Yii开发的一些经验和...
2.0.6 版本中可能会包含一些已知问题的解决方案,提高了框架的稳定性和可靠性。 3. **新特性**:这个版本可能引入了一些新的特性或功能,例如更好的 RESTful API 支持、增强的表单验证规则或者对最新 PHP 特性的...