filename.filetype
現在、Rackベースのアプリケーションを開発しており、すべてのファイル要求(たとえば)を指定されたフォルダーにリダイレクトしたいと考えています。
Rack::Static
特別なフォルダ(「/ media」など)のファイルリクエストのみをサポートします。
独自のRackミドルウェアを作成する必要がありますか、それともすぐに使用できるソリューションがありますか?
すべてのリクエストを特定のパスにリダイレクトするには、次を使用しますRack::File
(何らかの理由で、このクラスは最近のドキュメントにはありませんが、最新のRackの一部です)。
run Rack::File.new("/my/path")
すべてのリクエストをリダイレクトし、ターゲットディレクトリ内のすべてのファイルのHTMLインデックスを追加するには、次を使用しますRack::Directory
。
run Rack::Directory.new("/my/path")
複数のディレクトリを結合するか、ターゲットディレクトリからの一部のリクエストのみを処理するには:
map "/url/prefix" do
run Rack::File.new("/my/path")
end
# More calls to map if necessary...
# All other requests.
run MyApp.new
最新のRack実装では、Rack::Staticを使用できます。
例:
use Rack::Static, :urls => ["/media"]
./media
場所に関連するフォルダの下のすべての静的リソースを提供しますconfig.ru
。
直接使用できる場合がありますRack::File
。config.ru
ラックアップに接続して機能することを確認できるファイルは次のとおりです。
app = proc do |env|
Rack::File.new('foo/bar').call(env)
end
run app
run Rack::Directory.new(Dir.pwd)