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

如何路由 /foo以在 Rails 中显示 /public/foo.html

60960 次浏览

你可以这样做:

将这个文件添加到 outoutes.rb 文件中。

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

更新

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

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

谢谢 Grant Birchmeier

这可以在不触发重定向的情况下完成。按照下面的步骤,可以路由 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. 开始在 config/routes.rb中使用 static(path)方法。

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

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

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

config.serve_static_files = true

或者

config.serve_static_assets = true

另外,您可能需要在 NGINX 配置中提供作为 root 用户的公共目录。