.html
すべてのファイルをRails のHigh Voltage.html
のコントローラーと一致させて、末尾にあるURL がpages/<page>.html.erb
ビュー ディレクトリ内の対応するファイルを開くようにするにはどうすればよいですか? そしてもちろん、High Voltage のpage_path
名前付きルートで参照できますか?
1 に答える
私はそれが可能だとは思わないか、少なくとも些細なことです。URL の「接尾辞」部分は、要求の形式 (/pages/document.html、/pages/document.json、/pages/document.xml、/pages/document.csv など) にマップされます。は Rails ルーティングの基本であり、.html がデフォルトのフォーマットであるため、デフォルトで /pages/document は HTML を返します。次のようなルートを作成できる場合があります。
match '*.html' => 'high_voltage/pages#show', as: :static
私はそれをテストしていません。
一致を一番下に置くと、着信 URL に .html が含まれていても、それより前の何かに一致する可能性があります。逆に一番上に置くと、接尾辞のないものすべてにマッチする可能性があります。あなたがそれをテストするのに十分簡単なはずです。
私の高電圧ルート:
get '/:id' => 'high_voltage/pages#show', as: :static
私のルートの一番下、ルートURLの直前にあるので、基本的にはすべてをキャッチします。静的 html ファイル パスが RESTful ルートと異なる限り、問題なく動作します。
それ以外の場合、それらの静的 URL が (永続的に) リダイレクトすることが許容される場合は、nginx や apache などのアップストリーム HTTP サーバーに一致を配置し、/pages などの既知の高電圧パスにリダイレクトできます。