랙을 통해 정적 컨텐츠 파일과 동적 컨텐츠를 서비스하고자합니다. 동적 내용으로 응답 될 것이다 localhost:3000
에 요청하고 localhost:3000/resource/path_to_file
요청에 의해 응답 될 것이다,랙용 정적 파일 마운트 방법
@s = WEBrick::HTTPServer.new(
Port: 3000,
BindAddress: "localhost",
Logger: WEBrick::Log.new(File::NULL),
AccessLog: [nil, nil]
)
%w[INT TERM].each{|signal| trap(signal){@s.shutdown}}
@s.mount("/", self)
@s.mount("/resource/", WEBrick::HTTPServlet::FileHandler, "/")
@s.start
을 상기에서 : 이전에,이 같은 코드로, 랙를 사용하지 않고에 WEBrick 을 사용하고, 그것은 일 정적 파일은 내 컴퓨터의 /path_to_file
에 있습니다.
이제 Thin 서버가있는 Rack을 사용하는 시스템으로 전환하고 싶습니다. 다음과 같이 썼지 만 정적 파일을 가져올 수 없습니다. 작동하도록 어떻게 변경해야합니까?
Rack::Handler::Thin.run(->env{
h = Rack::Utils.parse_nested_query(env["QUERY_STRING"])
# I tried the following three lines one at a time, but neither worked.
use(Rack::Static, urls: "/resource/", root: "/") # First try
Rack::File.new("/resource").call(env) # Second try
Rack::Directory.new("/resource").call(env) # Third try
[200, {}, [some_dyamically_generated_content]]
}, Port: 3000)
저는 비슷한 질문입니다 : How to serve static files via Rack?,하지만 나는 그것을 작동시킬 수 없습니다. Rack::Static
, Rack::File
또는 Rack::Directory
을 사용하는 방법을 잘 모르겠습니다. 가르쳐주세요.
재 작성 및 세부 정보 주셔서 감사합니다. 그것은 효과가 있었다. – sawa