webentwicklung-frage-antwort-db.com.de

Routing zur statischen HTML-Seite in / public

Wie kann ich /foo zum Anzeigen /public/foo.html in Rails?

65
Aen Tan

Du kannst das:

Fügen Sie dies in Ihre routes.rb-Datei ein.

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

Update

In Rails 4 sollte "get" und nicht "match" verwendet werden:

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

danke Grant Birchmeier

98
Arkan

Dies kann erfolgen, ohne eine Umleitung auszulösen. Führen Sie die folgenden Schritte aus, um statische Dateien in config/routes.rb Weiterzuleiten, wie im folgenden Beispiel gezeigt:

# 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. Installieren Sie den Rails-static-router gem: https://github.com/mufid/Rails-static-router#installation
  2. App neu starten (zuerst bin/spring stop, Um sicherzustellen, dass die App vollständig neu geladen wurde).
  3. Beginnen Sie mit der static(path) -Methode in Ihrem config/routes.rb.
12
Eliot Sykes

ZB in Rails 4 füge folgende Route hinzu:

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

Außerdem müssen Sie in Ihrer Konfiguration statische Dateien aus dem 'öffentlichen' Verzeichnis aktivieren:

config.serve_static_files = true

OR

config.serve_static_assets = true

Außerdem müssen Sie möglicherweise Ihr öffentliches Verzeichnis als Root in der NGINX-Konfiguration angeben.