2012-04-08 3 views
12

공급 업체 자산을 루트 파일로 컴파일하는 데 문제가 있습니다. 다음 행으로config.assets.precompile 공급 업체/보석 자산을 추가하지 않음

vendor/gems/neo-viz/app/assets/stylesheets/neo-viz.css.scss 
vendor/gems/neo-viz/app/assets/javascripts/neo-viz.js.coffee 
vendor/gems/neo-viz/app/assets/javascripts/lib/jQuery/jquery-1.6.1.min.js 
vendor/gems/neo-viz/app/assets/javascripts/lib/arbor/arbor.js 

:

나는 다음과 같은 자산 가능한 독립를 갖고 싶어 (다른 assets_와 함께 제공되지.

config.assets.precompile += %w(jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css) 

만 CSS 파일은 미리 컴파일하고 사용할 이유 ?

또한이 질문 (Including assets in subdirectories with config.assets.precompile in Rails)을보고 나서 시도했습니다.

config.assets.precompile += %w(jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css lib/arbor/arbor.js arbor/arbor.js lib/jQuery/jquery-1.6.1.min.js jQuery/jquery-1.6.1.min.js ) 

하지만 아무런 차이가 없습니다. 아이디어?

답변

18

기본적으로 레일스는 app/assets, lib/assets 또는 vendor/assets의 3 개 위치 만 찾습니다. 스프로킷은 하위 디렉토리 javascripts에서 JS 에셋을 찾습니다. 예 : 당신이 콘솔이 사용할 수에 대한 레일보고 위치를보고 싶다면

app/assets/javascripts/arbor.js 
lib/assets/javascripts/arbor.js 
vendor/assets/javascripts/arbor.js 

: Rails.application.config.assets.paths

당신이 할 수있는 것은 파이프 라인에 사용자 지정 경로를 추가 할 수 있습니다 :

# @file: config/application.rb 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "javascripts") 

그런 다음 JS 파일을 포함하는 매니페스트를 만듭니다.

# @file: /vendor/gems/neo-viz/app/assets/javascripts/neo-viz.js 
//= require lib/jQuery/jquery-1.6.1.min 
//= require lib/arbor/arbor 
//= require neo-viz 

마지막으로 add 매니페스트 : 당신은 아직도 내가 지점이 표시되지 않는, separatly을 추가하려면

config.assets.precompile += %w(neo-viz.js)' 

, 왜 매니페스트에 포함되지는, 당신은 너무 모든 가능한 경로 접두사를 추가해야합니다 레일은 볼 위치를 알고 :

다음
# @file: config/application.rb 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "stylesheets") 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "javascripts") 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "javascripts", "lib", "jQuery") 
config.assets.paths << Rails.root.join("vendor", "gems", "neo-viz", "app", "assets", "javascripts", "lib", "arbor") 

당신이 자산 있기 때문에, 다음과 같이 추가 할 수 있습니다 매니페스트는 프리 D 배열에 추가해야합니다 외부 :

config.assets.precompile += %w(jquery-1.6.1.min.js arbor.js neo-viz.js neo-viz.css) 

출처 : 2.1 Asset Organization

+1

이것은 매우 도움이되었습니다. 그렇게 오랜 시간이 걸렸지 만이 대답은 _accepted_imo로 확인해야합니다. – sargas

관련 문제