2012-07-22 3 views
3

내가 찾은 여러 사이트 :이해 레일 3 개 디렉토리 구조

/vendor 
/lib 
/public 

어디로해야합니까 ? 나는 최선의 방법을 알고 싶다. 예를 들어 jQuery 플러그인이/vendor에 있어야합니까? /공공의?/lib? 나는 온라인으로 다른 위치에서 모두 3을 읽었다.

감사

+0

http://www.tutorialspruer.com/ruby-on-rails/rails-directory-structure.htm – gabrielhilal

답변

6

공급 업체입니다 타사 코드/라이브러리, 그래서, 그래, jQuery를 플러그인에 대한 좋은 장소.

공개는 정적 자산을위한 것이며, 자산 파이프 라인에있는 것으로부터 이점을 얻지 못합니다.

Lib은 일반적으로 앱과 관련없는 코드를 포함하는 데 사용됩니다. 여러 앱에서 사용하는 물건 예를 들어 도메인 로직을 lib에 넣는 경향이 있습니다. ActiveModel을 기반으로하지 않는 도메인 클래스. Gary Bernhardt (https://www.destroyallsoftware.com/)는이를지지합니다.

+0

빠른 답장을 보내 주셔서 감사합니다. 너는 나와 함께 몇 가지 것을 확인했다. 그래서 나는 그것이 지금 조금 더 잘 뻗어있는 방법을 이해한다. 나는 단지 내가해야 할 곳에 모든 것을 넣고 싶었습니다. –

4

일반적으로/public의 내용은 레일을 사용하지 않고 웹 서버 (nginx, apache 등)에서 직접 제공되므로 전통적으로 정적 자산 (이미지, 스타일 시트, 자바 스크립트 등)은 모두 여기에 들어갑니다. 당신은 여전히 ​​거기에 자바 스크립트를 넣을 수 있지만 조금 구식이야.

레일 3.1은이 모든 것을 변경 한 asset pipeline을 소개했습니다. 앱/자산, lib/assets 및 공급 업체/자산의 자산은 모두 자산 파이프 라인을 통해 서버를 확보합니다. 일반적으로 애플리케이션 별 애셋은 앱/애셋으로, 타사 라이브러리 (예 : 쿼리 플러그인)는 벤더/애셋으로 이동합니다. 자신 만의 jquery 플러그인 세트를 개발한다면 lib/assets에 넣을 수 있습니다. 자산은 어디에 배치하든 상관없이 '작동'할 것입니다. 단지 조직의 문제 일뿐입니다.

보석도 jquery-rails 보석 jquery 번들과 같이 자신의 자산 폴더를 가질 수 있으며 실제로 앱에 jquery를 제공하지 않고 jquery를 제공 할 수 있습니다. 나는 벤더/자산에 물건을 넣는 것보다 더 낫다고 본다.

+0

의견을 주셔서 감사합니다. –