首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Rails中做静态内容?

如何在Rails中做静态内容?
EN

Stack Overflow用户
提问于 2009-07-18 03:23:38
回答 6查看 57.3K关注 0票数 73

查看不同的选项:

一种是只将静态页面放在public/文件夹中,但我确实希望布局/应用程序的标题保持一致。

我试过了,但我得到了一个错误:

代码语言:javascript
复制
# in routes.rb:
map.connect '*path', :controller => 'content', :action => 'show'

# in content_controller.rb:
def show
  render :action => params[:path].join('/')
end

我想要的是一种简单的方法,通过创建一个.rhtml,就可以轻松地将常见问题解答、联系人、tos、隐私和其他非应用程序类型的页面放在一起。这是谁做的?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-11-07 00:46:39

https://github.com/thoughtbot/high_voltage有一个用于显示静态内容的名为high_voltage的插件

票数 31
EN

Stack Overflow用户

发布于 2009-07-19 11:09:26

取决于url结构,如果您希望路径来自/(例如/about_us),则:

代码语言:javascript
复制
map.connect ':action', :controller => "static"

这应该放在你的路由文件的最后,把你的.html.erb文件放到app/views/static中,你就完成了。

例如:加上about_us.html.erb,你会在/about_us上看到一个页面。

您问题中的项目非常适合用于分析params[:path]上提供给您的数组的全部捕获路径。有关更多信息,请访问http://railscasts.com/episodes/46-catch-all-route

票数 22
EN

Stack Overflow用户

发布于 2020-01-25 04:07:03

我从给出的答案中使用了通用控制器的概念,但我想捕获404,所以我在其中放了一个动作来处理这两种情况:

代码语言:javascript
复制
# app/controllers/static_controller.rb
class StaticController < ApplicationController
    def static_or_404
        render params[:static]
    rescue ActionView::MissingTemplate
        render :not_found
    end
end

然后在我的路由的最底层:

代码语言:javascript
复制
# config/routes.rb
get '*static', to: 'static#static_or_404'

它提供与路径同名的来自app/views/static的视图,如果没有这样的视图,它就提供app/views/static/not_found.html.erb。人们也可以用redirect_to root_path或任何其他希望发生的事情来取代render :not_found

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1146624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档