路由到/ public中的静态html页面

时间:2011-04-12 06:19:26

标签: ruby-on-rails ruby-on-rails-3 url routing

如何将/foo路由到Rails中显示/public/foo.html

3 个答案:

答案 0 :(得分:97)

你可以这样做:

将此添加到routes.rb文件中。

match '/foo', :to => redirect('/foo.html')

<强>更新

在Rails 4中,它应该使用“get”,而不是“匹配”:

get '/foo', :to => redirect('/foo.html')

感谢Grant Birchmeier

答案 1 :(得分:12)

这可以在不触发重定向的情况下完成。按照下面的步骤操作,可以在config/routes.rb中路由静态文件,如下例所示:

# This route will serve public/index.html at the /login URL 
# path, and have a URL helper named `login_path`:
get "/login", to: static("index.html")

# This route will serve public/register.html at the /register
# URL path, and have URL helper named `new_user_registration_path`:
get "/register", to: static("register.html"), as: :new_user_registration
  1. 安装rails-static-router gem:https://github.com/mufid/rails-static-router#installation
  2. 重新启动应用(首先bin/spring stop以确保应用已完全重新加载)。
  3. 开始使用static(path)。{/ li>中的config/routes.rb方法

答案 2 :(得分:0)

例如,在Rails 4中添加以下路线:

get '/example', :to => redirect('example.html')

您还需要在配置中的“public”目录中启用静态文件:

config.serve_static_files = true

OR

config.serve_static_assets = true

此外,您可能需要在NGINX配置中以root身份提供您的公共目录。