web-dev-qa-db-ja.com

/ publicの静的なHTMLページへのルーティング

ルーティング方法/foo 表示する /public/foo.html Railsで?

65
Aen Tan

あなたはこれを行うことができます:

これをroutes.rbファイルに追加します。

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

更新

Rails 4では、「match」ではなく「get」を使用する必要があります。

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

おかげで グラントバーチマイヤー

98
Arkan

これは、リダイレクトをトリガーせずに実行できます。この例に示すように、_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)メソッドの使用を開始します。
12
Eliot Sykes

例:Rails 4次のルートを追加します。

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

また、構成の「public」ディレクトリから静的ファイルを有効にする必要があります。

config.serve_static_files = true

OR

config.serve_static_assets = true

また、NGINX構成でパブリックディレクトリをルートとして提供する必要がある場合があります。