Rigel Blue  - 讨论区

标题:rigelblue.oicp.net 实现说明

2010年09月22日 星期三 13:29

http://rigelblue.oicp.net

虽然很简单,但也是Rigel Blue Web Framework的第一个应用了。简单说明一下,这个网站是如何实现的。

首先RBWF可以让我们建立很多app,每个app都可以很独立。浏览这个网址所看到的仅是一个叫home的app啦。浏览http://rigelblue.oicp.net/index.yaws/helloworld就可以看到另外一个叫helloworld的app。

每个app底下有自己的controller,view,这两个是必须的。也可以加入js和css。当然要是想搞几个通用的js和css,放到别的目录下也没关系,这和RBWF无关。那么这个网站的目录结构如下。

application
|
|-helloworld
|  |
|  |-controller
|  |  |-helloworld_index.erl
|  |
|  |-view
|     |-helloworld.yaws
|   
|-home
   |
   |-controller
   |  |-home_index.erl
   |  |-home_download.erl
   |  |-home_changelog.erl
   |  |-home_roadmap.erl
   |
   |-view
   |  |-home.yaws
   |  |-download.yaws
   |  |-changelog.yaws
   |  |-roadmap.yaws
   |  |-install.yaws
   |
   |-js
   |  |-jquery.js
   |
   |-css
   |  |-home.css
   |
   |-image

在页面上点击Home, Download, Change Log, Roadmap,会分别调用对应的Controller。

这些Controller都会去Load home.yaws这个view。然后把download.yaws, changelog.yaws, roadmap.yaws, install.yaws,分别绑定到home.yaws中,就看到虚线框中的内容。

除了download.yaws,其他三个都是纯html内容,可以被直接绑定。因为download页面要显示的内容是用erlang查找磁盘文件,动态生成的。erlang语句不能被绑定(不会被yaws解析)。download的处理方式为,download.yaws中是js语句,通过get调用download controller中的一个函数,在这个函数中创建内容,再返回给页面。有点折腾,但至少实现了想要的结果。

2010年09月22日 星期三 22:03

真不错!

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号