2014-01-07 3 views
1

레일 3.1.12를 사용하고 있으며 응용 프로그램에서 공급 업체 자산을 올바르게 구성하는 데 문제가 있습니다.벤더 자산 폴더에서 인덱스 파일을 사용하는 방법은 무엇입니까?

내가 원하는 것은 각각의 라이브러리 당 색인을 사용하여 the guide에 지정된 것처럼 하나의 명세서로 모든 자산을 자동으로로드하는 것입니다. 폴더 구조는 다음과 같이이다 : 나는 콘솔에서 Rails.application.config.assets.paths 배열을 인쇄 할 때

/vendor 
--/assets 
----/libraries/ 
------/jquery.ui/ 
--------/index.js 
--------/javascripts ... 
--------/stylesheets ... 
--------/images ... 

나는 레일이 자동으로 자산 검색 경로에 /vendor/assets/ 내부의 모든 폴더를 추가하는 것을 알고 난 목록에이 경로를 볼 수 있습니다.

그러나 필요 다음 명령문은도 내 JS 파일 내에서 작동하지 않는 몇 가지 이유

,도 SASS 파일 : 그 문을 사용

//= require jquery.ui 

다음과 같은 오류 제공 :

error = #<Sprockets::FileNotFound: couldn't find file 'jquery.ui'> 
이 작동

을, 하지만

//= require jquery.ui/index 

첫 번째 작품은 어떻게 만듭니 까?

답변

1

라이브러리 이름에 문제가 있음이 밝혀졌습니다. 내가

vendor/assets/libraries/jquery-ui 

vendor/assets/libraries/jquery.ui 

에서 라이브러리를 이동

//= require jquery.ui 

를 교체 할 때

//= require jquery-ui 

모든 것이 제대로 index.js 및작업 시작jquery-ui 폴더 안에있는 파일이 올바르게로드되고 있습니다!

+0

은 index.js 및 index.css 파일이 라이브러리에서 directlly로 간주되는 파일이 아닙니까? 'vendor/assets/libraries/index.js'? – ahnbizcad

0

스프로킷 지시문을 사용하려면 필요한 파일을 지정해야합니다. //= require jquery.ui "Jquery.ui.js"또는 "jquery.ui.js.coffee"와 같은 파일을로드하는 Sprockets가 적습니다. "jquery.ui/index.js"가 필요한 경우 파일 확장자를 정확히 지정해야합니다. 이 동작은 Ruby의 요구와 거의 동일합니다.

The require directive functions similar to Ruby's own require . It provides a way to declare a dependency on a file in your path and ensures its only loaded once before the source file.

require works with files in the environment path:

//= require "foo.js" 

Extensions are optional. If your source file is ".js", it assumes you are requiring another ".js".

//= require "foo" 

Relative paths work too. Use a leading ./ to denote a relative path:

//= require "./bar" 

당신은 지정된 디렉토리에있는 모든 파일이 필요합니다 require_tree, 같은 다른 지시어를 사용하도록 선택할 수 있습니다 : require_tree ./jquery.ui. 단, 명시 적 상대 경로 (예 : require_tree ./jquery.uirequire_tree jquery.ui)를 사용해야합니다. 또한 파일은 알파벳 순서로 입력해야하므로 코드가 require_tree을 사용하기 전에 순서에 관계없이 확인해야합니다.

+0

좋아, 나는 그걸로 살 수 있다고 생각하지만, 이것에 대해서는? http://guides.rubyonrails.org/asset_pipeline.html#using-index-files 인덱스 파일이'app/assets' 내부에서 작동하는 이유는 무엇입니까? –

+0

색인 파일에 무엇이 있습니까? – fny

+0

'// = require jquery.ui.effects'와 같은 주석과 기타 require 문만. 그 파일은 보석에서 필요합니다. –

관련 문제