문제

현재 랙 기반 애플리케이션을 개발 중이며 모든 파일 요청 (예 : 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)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top