How can I route /foo
to display /public/foo.html
in Rails?
E.g in Rails 4 add the following route:
get '/example', :to => redirect('example.html')
Also you need to enable static files from the 'public' directory in your configuration:
config.serve_static_files = true
OR
config.serve_static_assets = true
Also you might need to provide your public directory as root in NGINX configuration.
You can do this:
Add this, into your routes.rb file.
match '/foo', :to => redirect('/foo.html')
Update
In Rails 4, it should use "get", not "match":
get '/foo', :to => redirect('/foo.html')
thanks Grant Birchmeier
This can be done without triggering a redirect. Follow the steps further down to be able to route static files in config/routes.rb
as shown in this example:
# 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
bin/spring stop
to be sure app is completely reloaded).static(path)
method in your config/routes.rb
.