`
hudeyong926
  • 浏览: 2015928 次
  • 来自: 武汉
社区版块
存档分类
最新评论

YII Jquery冲突问题解决方法

 
阅读更多

为什么用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阻止系统默认的

 

  • 大小: 12.7 KB
分享到:
评论

相关推荐

    Yii框架中jquery表单验证插件用法示例

    本文实例讲述了Yii框架中jquery表单验证插件用法。分享给大家供大家参考,具体如下: 运行效果图如下: 视图层: &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...

    yii框架yii框架yii框架yii框架yii框架

    很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架

    yii-jquery:Yii Framework jQuery扩展

    Yii Framework jQuery扩展 该扩展为提供了 。 有关许可证信息,请检查文件。 文档位于 。 安装 安装此扩展的首选方法是通过 。 php composer.phar require --prefer-dist yiisoft/yii-jquery

    Yii框架用户登录session丢失问题解决方法

    本文实例讲述了Yii框架用户登录session丢失问题解决方法。分享给大家供大家参考,具体如下: 最近做项目,使用的是YII框架,用户的登录总是出现有时候能登录,有时候不能登录的情况。调试了很多次,开始以为是服务器...

    yii2-showloading:用于 showLoading jQuery 插件的 Yii2 扩展

    用于 showLoading jQuery 插件的 Yii2 扩展Yii2Codepen 插件提供了一种将加载指示器覆盖在任意内容上的巧妙方法(例如在 ajax 调用期间)。 安装 作曲家 只需在 composer.json 中添加扩展名: { "require" : { ...

    Yii 的登录流程

    Yii是一个全栈式的MVC框架,所谓全栈式指的是Yii框架本身实现了web开发中所要用到的所有功能,比如MVC,ORM(DAO/ActiveRecord), 全球化(I18N/L10N), 缓存(caching), 基于jQuery Ajax支持(jQuery-based AJAX support), ...

    深入理解Yii2.0

    《深入理解Yii2.0》是一本干货。主要讲解Yii2.0及所代表的最新一代Web开发框架的新特性、新技术、新理念、新模式。 采用的方式是分析框架的源代码,尝试从根上进行理解和阐述,并融入个人使用Yii开发的一些经验和...

    Yii2.0打造京东商城平台PHP电商实战Yii2.0视频教程

    Yii2.0级基于Yii1.X完全重写的,不仅是小版本升级的升级。所以想要系统学习Yii2.0这个框架这套教程可以从实战项目带你入手。不错的学习YII框架的基础课程,电商系统的结构完整、框架资源太大,传百度网盘了,链接在...

    yii2-datatable:用于 jQuery 的 DataTables 表格插件

    用于 jQuery 的 DataTables 表格插件 安装 安装此扩展的首选方法是通过 。 要么跑 php composer.phar require --prefer-dist tejrajs/yii2-datatable "dev-master" 或添加 "tejrajs/yii2-datatable": "dev-master...

    yii framework(Yii)框架window版

    Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上...

    yiiframework官方最新版,包括源程序、api、文档

     5、Web 2.0部件:由jQuery的支持,YII配备了一套Web 2.0的部件,如自动完成输入字段,TreeView等等。  6、身份验证和授权:Yii具有内置的身份验证支持。它也支持通过分层的基于角色的访问控制(RBAC)的授权。  ...

    解决yii验证码刷新和提交刷新问题的类

    一个可以解决yii验证码页面刷新验证码不刷新和验证码在提交之后不刷新的验证码类,具体配置教程可参考我的这篇文章:http://blog.csdn.net/likunlun1234/article/details/39343747

    yii1.1.10 开发包(包含yii权威指南以及yii博客例子讲解)

    yii1.1.10 开发包(包含yii权威指南以及yii博客例子讲解)

    yii框架中文手册教程和YII模板

    yii框架中文手册教程和YII模板 我很辛苦才找到的

    Yii 中文帮助文档

    Yii 是什么 Yii 是一个基于组件、用于开发大型 Web 应用的高性能 PHP 框架。它将 Web 编程中的可重用性发挥到极致,能够显著加速开发进程。Yii(读作“易”)代表简单(easy)、高效(efficient)、可扩展(extensible)。...

    Yii权威指南思维导图

    Yii权威指南思维导图 yii类结构 类导图 权威指南

    Yii,PHP FRAMEWORK ORM

    他几乎拥有了所有的特性,包括MVC, DAO/ActiveRecord, I18N/L10N, caching, jQuery-based AJAX support, 用户认证和基于角色的访问控制, 脚手架, 输入验证, 部件, 事件, 主题化以及Web services等. 用严格的OOP编码...

    PHP YII 发送邮件扩展

    使用方法: $mail = new YiiMailer(); //$mail-&gt;clearLayout();//if layout is already set in config $mail-&gt;setFrom('from@example.com', 'John Doe'); $mail-&gt;setTo(Yii::app()-&gt;params['adminEmail']); $mail-&gt;...

    Mastering Yii.pdf(en)

    Yii Framework 2 (Yii2) is the successor to the popular Yii framework. Like its successor, Yii2 is an open source, high-performance rapid development framework designed to create modern, scalable, ...

Global site tag (gtag.js) - Google Analytics