私の画像はすべてアプリ自体に保持されていたため、完全な URL の有無にかかわらず、いくつかの場所で cms のコンテンツにハードコードされている /images/12345.jpg で参照されていました。
画像は s3 に移動されたので、/images/12345.jpg|png|gif またはhttp://www.example.com/images/12345の形式の URL のリダイレクトを追加したいと考えてい ます。 jpg|png|gif (ただし、数字のファイル名のみ)
そしてそれらを指す
http://my.images.images.s3.amazonaws.com/540x310/12345.jpg|png|gif
私は現在持っています
use Rack::Rewrite do
rewrite %r{images\/(\d*.)(jpe?g|png|gif)$}, 'http://my.images.images.s3.amazonaws.com/540x310/$1$2'
end
しかし、これはあまり正しくないようです。
更新 ------ もちろん、ソースの URL は変更されません。リンクを直接クリックすると、エラーが返されます。
一致するルートはありません [GET] "/ http://my.images.images.s3.amazonaws.com/540x310/13135.jpeg "
(先頭のスラッシュに注意してください)
したがって、書き換えは機能していますが、外部 URL ではなく内部リンクにルーティングする必要があると考えられます。
UPDATE2------に変更
r302 %r{(?:images\/)(\d*.jpe?g|png|gif)$}, "http://my.images.images.s3.amazonaws.com/540x310/$1"
http://www.example.com/images/13135.jpegにアクセスするとリダイレクトされるようになりました
サイト自体の画像をレンダリングしていません。