2011-11-29 3 views
8

나는 레일 3.1을 사용하고 자산에서이 같은 파일이 있습니다자산 미리 컴파일

assets 
    javascripts 
    admin 
     admin.js 
     a1.js 
    client 
     client.js 
     c1.js 

admin.js 것은이

// 
//= require jquery 
//= require jquery_ujs 
//= require a1 

client.js처럼 보인다는 다음과 같습니다

// 
//= require jquery 
//= require c1 

개발 모드에서 모든 것이 잘 작동합니다. 레이크 에셋을 할 때 : 프리 컴파일을하면 공개/자산에 자바 스크립트 파일이 표시되지 않습니다. 공개/자산의 모든 스타일 시트를 볼 수 있습니다.

이 경우 매니페스트 파일 (admin.js 및 client.js)이 하위 디렉토리에 있다는 사실과 관련이 있다고 생각합니다.

rake assets : precompile이 서브 디렉토리를 조사하지 않는다는 것이 사실입니까?

이 문제를 해결하는 방법에 대한 제안. 나는 내가 자바 스크립트 파일을 가지고 있기 때문에 내가 뻗은 방식으로 파일을 갖는 것을 선호한다.

답변

11

미리 컴파일 할 파일을 설정하는 레일 구성에 사전 컴파일 배열이 있습니다. application.js 및 application.css는 디렉토리에 있습니다.

당신은 프리 D 배열에 파일을 추가해야합니다

:

 
config.assets.precompile += ['admin/admin.js', 'client/client.js'] 

그리고 그들은을 통해 액세스 할 수 있어야합니다 : 레일 3.2.6에서

 
javascript_include_tag "admin/admin.js" 

 
javascript_include_tag "client/client.js" 
3

, 하위 디렉토리에서 자바 스크립트 애셋을 관리 할 때 각 하위 디렉토리 'index.js'에 대한 매니페스트의 이름을 지정할 수 있습니다 (OP의 'admin.js'와 'client.js'), 그리고 다음 설정/환경/production.rb의 말 : 뒤에서

config.assets.precompile += ['admin.js', 'client.js'] 

매직 지수의 사양에 따라 관리자의 하위 디렉터리에보고 컴파일 .js, admin.js로 출력; 클라이언트와 마찬가지입니다.

자산은 될 것 접근을 통해 :

javascript_include_tag 'admin' 
관련 문제