랙을 통해 정적 파일을 제공하는 방법?
문제
현재 랙 기반 애플리케이션을 개발 중이며 모든 파일 요청 (예 : Filename.fileType)을 지정된 폴더로 리디렉션하려고합니다.
rack :: static은 특수 폴더 (예 : "/media")에 대한 파일 요청 만 지원합니다.
자체 랙 미들웨어를 작성해야합니까? 아니면 상자 밖의 솔루션이 존재합니까?
친애하는
해결책
모든 요청을 특정 경로로 리디렉션하려면 Rack::File
(어떤 이유로이 수업은 최근 문서에 없지만 여전히 일부 최신 랙) :
run Rack::File.new("/my/path")
모든 요청을 리디렉션하고 대상 DIR의 모든 파일의 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
다른 팁
업데이트, 최신 랙 구현을 사용하면 사용할 수 있습니다. 랙 :: 정적
예시:
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)
제휴하지 않습니다 StackOverflow