web-dev-qa-db-fra.com

Routage vers une page HTML statique dans / public

Comment puis-je acheminer /foo afficher /public/foo.html dans Rails?

65
Aen Tan

Tu peux le faire:

Ajoutez-le dans votre fichier routes.rb.

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

Mise à jour

Dans Rails 4, il doit utiliser "get", pas "match":

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

merci Grant Birchmeier

98
Arkan

Cela peut être fait sans déclencher de redirection. Suivez les étapes plus bas pour pouvoir router des fichiers statiques dans config/routes.rb Comme indiqué dans cet exemple:

# 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. Installez la gemme Rails-static-router: https://github.com/mufid/Rails-static-router#installation
  2. Redémarrez l'application (d'abord bin/spring stop Pour vous assurer que l'application est complètement rechargée).
  3. Commencez à utiliser la méthode static(path) dans votre config/routes.rb.
12
Eliot Sykes

Par exemple, dans Rails 4, ajoutez l'itinéraire suivant:

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

Vous devez également activer les fichiers statiques à partir du répertoire "public" dans votre configuration:

config.serve_static_files = true

OR

config.serve_static_assets = true

Vous devrez peut-être également fournir votre répertoire public en tant que root dans la configuration NGINX.