在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

怎样在Yii中显示静态页的更多相关文章

  1. Docker学习のDocker中部署静态页网站

    前言:部署一个静态页网站,我们需要 常见映射80端口的交互式容器 安装Nginx(或其他服务器) 安装文本编辑器vim 创建静态页面 修改Ngnix的配置文件 运行Ngnix 验证网站的防高温 一.设 ...

  2. vue中显示静态图片怎么引用

    有多种方法解决这个问题: 首先,如果使用的是img标签那么可以这样 data () { return { img: require('path/to/your/source') } } 然后在temp ...

  3. yii中缓存(cache)详解

    缓存是用于提升网站性能的一种即简单又有效的途径.通过存储相对静态的数据至缓存以备所需,我们可以省去生成这些数据的时间.在 Yii 中使用缓存主要包括配置和访问缓存组件 . 内部方法 一.缓存配置: 1 ...

  4. yii中缓存(cache)详解 - 彼岸あ年華ツ

    缓存是用于提升网站性能的一种即简单又有效的途径.通过存储相对静态的数据至缓存以备所需,我们可以省去生成 这些数据的时间.在 Yii 中使用缓存主要包括配置和访问缓存组件 . 内部方法 一.缓存配置: ...

  5. Yii中的错误及异常处理

    Yii中的错误及异常处理 Yii已经默认已经在CApplication上实现了异常和错误的接管,这是通过php的set_exception_handler, set_error_handler实现的. ...

  6. Javascript and AJAX with Yii(在yii 中使用 javascript 和ajax)

    英文原文:http://www.yiiframework.com/wiki/394/javascript-and-ajax-with-yii /*** http://www.yiiframework. ...

  7. .net(全局文件,错误页,静态页,IIS配置及防黑)

    添加全局应用程序类. <%@ Application Language="C#" %> <script runat="server"> ...

  8. ASP.NET静态页生成方法(模板替换)

    本文实例讲述了ASP.NET静态页生成方法的一种简单方法,就是替换内容法. 适用场景 模板比较固定,页面替换内容较少. 基本原理 此方法中静态页生成用到的就是匹配跟替换了,首先得读取模板页的html内 ...

  9. “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成)

    “MVC+Nhibernate+Jquery-EasyUI” 信息发布系统 第六篇(图片新闻的添加以及带分页的静态页的生成) 一.这篇文章主要是要实现:图片新闻的添加,无刷新图片的上传,以及添加新闻静 ...

随机推荐

  1. oracle创建表(并且实现ID自增)

    CREATE TABLE STUDENT ( ID INT NOT NULL, NAME VARCHAR2(4000) NOT NULL, PRIMARY KEY(ID) ) TABLESPACE M ...

  2. WORDPRESS插件开发学习(一)HELLO WORLD

    WORDPRESS插件开发学习系列文章第一篇,在每篇文章的后面追加固定的字符“Hello World” 一.打开wordpress目录->wp-content->plugins 二.在pl ...

  3. html5 canvas绘制圆形印章,以及与页面交互

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. tree命令

    tree命令以树状图列出目录的内容. 1.语法 tree(选项)(参数) 2.选项 -a:显示所有文件和目录: -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合: -C:在文件和目录清单加 ...

  5. 四句话总结JavaScript作用域

    上一篇文章中简单介绍了一下JS作用域,本篇将作进一步探究和总结. 前言:JavaScript的作用域一直以来都是前端开发中比较难以理解的知识点,JavaScript6中新引入了 let 关键字,用于指 ...

  6. 分享 - Social.framework

    /** *  第三方分享 * *  @param void 友盟分享 *  @param shareSDK *  @param 百度分享 */ #import "ViewController ...

  7. 定位 - MapKit - 基本使用

    /** *  Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Co ...

  8. 在mesos上安装storm,并且执行wordcount测试程序

    mesos上安装storm 1.基本说明 如果只用一句话来描述storm的话,可能会是这样:分布式实时计算系统.按照storm作者的说法,storm对于实时计算的意义类似于hadoop对于批处理的意义 ...

  9. Bootstrap 分页插件 ajax获取数据显示

    Bootstrap 分页插件 ajax获取数据显示 标签(空格分隔): bootstrap 文章的内容是使用bootstrap-paginator进行分页,使用ajax获取后台数据.渲染. 1. 版本 ...

  10. 【技术贴】解决Mysql ERROR 1045 (28000): Access denied for

    今天Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' 肯定是密码不对了.那么重置一下密码吧. 打开 cmd 输入以 ...