新浪SAE云平台之Yii框架应用搭建
来源:互联网 发布:基于单片机设计作品 编辑:程序博客网 时间:2024/05/16 14:15
看了很多文档,总算是把SAE环境给弄起来了,不过SAE提供的本地环境还是不能友好的运行起来,于是放弃了SAE本地环境,就用自己搭建的Apache环境来运行,再兼容SAE云平台。
获取YII-SAE包:
http://yiisae.sinaapp.com/
或:
http://download.csdn.net/detail/lsg9012/8392375 (含demo)
建立一个新项目,将demo中配置文件复制过来,需要对原demo 下的 config/main.php 做点更改,将 assetsAction 设置为 'index/assets' ,因为我按原方式导致了使用zii中的Jui时生成的静态资源链接访问不到,后面会提到
//如果是SAE环境下if(defined('SAE_TMP_PATH')){ //SAE 禁止本地 I/O $config['runtimePath'] = SAE_TMP_PATH; //class使用SAEDbConnection $config['components']['db'] = array( 'class'=>'SAEDbConnection', 'charset' => 'utf8', 'emulatePrepare' => true, 'enableProfiling'=>true, 'enableParamLogging'=>true, //cache 'schemaCachingDuration'=>0, ); //index为控制器(defaultController指定),assets为方法 $config['components']['assetManager'] = array('class' => 'SAEAssetManager','assetsAction'=>'index/assets'); //缓存 $config['components']['cache'] = array( 'class'=> 'SAEMemCache', 'servers'=>array( array('host'=>'localhost', 'port'=>11211, 'weight'=>100), ), );}
在 defaultController 对应的控制器里添加
public function actions(){ return array( 'assets'=>array('class'=>'SAEAssetsAction',), );}
如果是默认的配置情况下我在一个视图文件中使用了下面这一段代码(Yii扩展)时,则会找不到 ZII 下的静态资源
$this->widget('zii.widgets.jui.CJuiDatePicker', array('name'=>'pub_date','language'=>'zh_cn','options'=>array('showAnim'=>'fold','dateFormat' => 'yy-mm-dd',),'htmlOptions'=>array("id" => "datepicker","class" => "form-control",),));
上面的代码生成一个Input框可以选择时间,但是会因找不到静态资源而没有产生效果
<!-- Yii扩展生成的资源链接访问是这样的 -->http://sinaappName.sinaapp.com/site/assets?path=yiisae/framework/web/js/source/jui/js/jquery-ui.min.js<!-- 实际使用到的访问是这样的(默认的控制器是site,现在用的是index) -->http://sinaappName.sinaapp.com/index/assets?path=yiisae/framework/web/js/source/jui/js/jquery-ui.min.js
将 config/main.php 文件中 添加一条兼容SAE上的rules
if(defined('SAE_TMP_PATH')){ //设置SAE上的assets $config['components']['urlManager']['rules']['assets/<path:.*?>'] = 'index/';}
另外在 SAEAssetsAction 中将如下的判断前加一个 isset, 避免出现未定义的情况,也可以在入口文件中设置屏蔽Notice
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) && $_SERVER['HTTP_IF_NONE_MATCH'] == $etag) { #header('HTTP/1.1 304 Not Modified'); header('Etag:'.$etag,true,304);}
这样就修改完成了,Yii扩展可以使用了,如果是将原 assets 文件放在 Storage 上去,那链接是什么样的没试过,
我是直接按上面那样配置了后,就跟平常使用Yii一样开发的。
0 0
- 新浪SAE云平台之Yii框架应用搭建
- 【玩转微信公众平台之六】 搭建新浪SAE服务器
- 新浪SAE云应用
- PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用基础
- PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用基础
- PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用
- 云应用开发之新浪SAE日志查看
- 云应用开发之新浪SAE读写云端数据库MySQL
- 云应用开发之新浪SAE读写云端数据库MySQL
- 初试新浪PaaS云平台-SAE
- 新浪sae平台mysql
- 1:新浪云SAE搭建微信公众平台开发-java
- 在新浪云sae上搭建微信公众平台消息有时不回复的问题
- 利用新浪SAE云计算平台搭建免费的WordPress独立博客
- 搭建新浪SAE服务器
- 开放平台大抉择之新浪SAE:为个人…
- PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用——建立微博应用的过程
- PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用——建立微博应用的过程
- BufferIO
- Ubuntu下的PHP开发环境架设
- svn 使用指南(经验总结版)
- 创业关键是做
- poj 2096 Collecting Bugs(概率dp)
- 新浪SAE云平台之Yii框架应用搭建
- 删除链表的结点
- shape selector一起使用
- Android中获取验证码时的倒计时效果
- ART如何实现Exception.printStackTrace
- Gson解析json数组
- IOS用CGContextRef画各种图形(文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角矩形、贝塞尔曲线、图片)
- libsvm 训练后的模型参数讲解
- Google Nexus设备刷机