开发者

Static pages in MVC framework?

开发者 https://www.devze.com 2022-12-19 11:20 出处:网络
Where do you guys put your static pages, like \"home\", in an MVC framework? Do you have a \"home\" controller? A \"pages\" controller? Do you create actions for each static page?

Where do you guys put your static pages, like "home", in an MVC framework? Do you have a "home" controller? A "pages" controller? Do you create actions for each static page?

I'm using CFWheels now, and I'm trying to figure out the best place to put them.


Edit: Apparently CFWheels doesn't require you to create actions for all your views. So you can just create an empty controller and 开发者_开发知识库call the views like actions, but not have to write out the blank functions.


CakePHP (and I guess, Ruby On Rails) has a "pages" controller. There is a routing function which redirects requests to /pages/foo to /pages/display/foo. Similarly, / is redirected to /pages/display/home. The display action looks up the views/pages folder for any file with a matching name and renders that.


At the end of the day, a static page is a view without a model, that was returned based on an action the user requested from your server by hitting particular route. :-)

Yes, technically you could expose the direct location of the view resource to the user and rely on the http daemon to go fetch it and return it. However, that means that the resource URL is now tied not to the semantic of the resource you want to expose, but to actual bits. This means that if you want another representation of that same resource, you have to expose it on a different URL.

So, when you create the structure of your web app, think first about the URLs and the resources you want to expose and then think how to implement each resource.


I put my static pages in the database using a simple CMS with a private admin page.

This way, the clients can make simple changes themselves.


In Wheels, you don't even need to create the controller file.

If you create your view here: views/about/index.cfm

You don't need to create the controller file at all. Then you should be able to just call this with no problems: http://www.example.com/about

0

精彩评论

暂无评论...
验证码 换一张
取 消