在web应用中,我们经产更需要显示静态页,如“关于我们”等,这些文件通常是静态页,通常有如下几种处理方法:

1.把独立的html文件存在Web服务器能直接访问的目录下。这种方案的缺点是很难维护网页布局以及和动态页的连接.

2.可以自己写action赖渲染view文件处理每一个静态页,这样解决了layout问题,但是为每一个页写一个单独的action,特别是这个action仅仅处理一个静态文本,非常麻烦。

3.使用Yii内置的一个CViewAction来服务所有这些页。

下面就介绍第三种方法: 
首先,建立以个controller类如DocController,覆盖actions方法

  1. public function actions()
  2. {
  3. return array(
  4. 'page'=>array(
  5. 'class'=>'CViewAction',
  6. ),
  7. );
  8. }

根据官方指南,以上代码声明了一个外部action类CViewAction.

然后,生成目录protected/views/site/pages.

最后,在该目录下存储一个文件叫about.php,内容为:"about this site" ,此时这些页将使用应用的默认布局文件。因此该文件仅仅描述本页相关内容。

http://www.yourhost.com/index.php?r=doc/page&view=about

如果有很多静态页,可以将其放在子目录里,假设有一个有静态页在protected/views/site/pages/help/contact.php:

http://www.yourhost.com/index.php?r=site/page&view=help.contact

当然,我们也可以定制CViewAction的行为,察看API文档了解更多有关于CViewAction

From: http://koda.iteye.com/blog/466542

最新文章

  1. ASP.NET Core应用针对静态文件请求的处理[3]: StaticFileMiddleware中间件如何处理针对文件请求
  2. 我这样理解js里的this
  3. webservice调用服务端数据时给soapenv:Envelope 添加自定义的命名空间
  4. 朝花夕拾-android 一个注册新用户时,多步填写用户资料的框架
  5. SqlServer中的一些非常用功能
  6. setAttribute一个兼容性问题
  7. schedule和scheduleUpdate
  8. JS模块加载器加载原理是怎么样的?
  9. 什么是mimeType?
  10. 家中路由添加静态IP映射(一)
  11. 网站开启cdn加速的最简单步骤
  12. HTML和XHTML区别
  13. MFC工程 重命名方法
  14. 关于ASP.NET MVC 中JsonResult返回的日期值问题
  15. [android] androidPN开源项目介绍
  16. css继承样式怎么控制?用选择器
  17. 关于UNITY学习,给新生建议
  18. 百度地图 ijintui以及七牛、百度编辑器、kindeditor
  19. @Primary 注解引出的问题
  20. 为何C语言(的函数调用)需要堆栈,而汇编语言却不需要堆栈

热门文章

  1. linux文件属性权限相关
  2. demo——06弹性和制作骰子
  3. 移动端REM布局方案
  4. 基于ActiveMQ的点对点收发消息
  5. Mongoengine 使用笔记
  6. 基础canvas应用-钟表绘制
  7. spirng MVC乱码过滤器
  8. Spring 3整合Quartz 1实现定时任务一:常规整合(基于maven构建)
  9. 实现一个JavaScript模块化加载器
  10. 移动应用产品开发-android开发项目记录