2013-09-23 1 views
4

Sinatra가 설정하는 기본 공용 디렉토리 외부의 CSS 및 JavaScript 파일에 링크하고 싶습니다.Sinatra - 여러 공용 디렉토리

나는 set :public을 사용하여 디렉토리를 변경할 수 있지만 다른 'public_2'와 함께 기본 디렉토리를 유지하려고합니다.

이 방법이 있습니까?

+0

Sinatra는 여러 개의 공용 dir을 허용하지 않습니다. 2 개의 공개 디렉토리가 필요한 특별한 이유가 있습니까? 파일이 어떤 디렉토리에 있는지 몇 가지 논리가 있습니까 (예 : 1에 이미지, 다른 자바 스크립트 파일 등이 포함되어 있습니까?)? 또는 병합 된 콘텐츠를 원하십니까? 즉, 파일이 2 개의 디렉토리 중 하나에 있고 sinatra가 투명하게 파일을 제공해야합니다. – koffeinfrei

+0

주 응용 프로그램과 함께 실행될 일부 코드를 볼트로 고정하려고하지만 필요한 경우 제거 가능하도록하려고합니다. 현재 기본 application.rb 내에 포함 된 파일을 실행하는 데 필요한 파일을 포함합니다. 기본 공용 폴더에 CSS를 포함시킬 수는 있지만이를 피할 수 있다면 원하는 것은 아닙니다. 로직의 경우 'public_2'폴더에는 일반적인 공용 폴더와 마찬가지로 css, images 및 js 디렉토리가 포함됩니다. – doublesidedstickytape

답변

5

당신이 사용할 수있는 TryStatic middleware from rack-contrib :

require 'rack/contrib/try_static' 

use Rack::TryStatic, :root => 'public_2', :urls => %w[/] 

이제 publicTryStatic 미들웨어는 애플리케이션 전에 타격을받을 것이기 때문에 public_2 디렉토리 모두는, 요청 (public_2 먼저 검색됩니다 일치하는 파일을 검색한다 그 자체).

관련 문제