12

나는 3.1의 새로운 자산 파이프 라인레일에 Galleria 같은 jQuery를 프레임 워크를 넣을 수있는 위치에 관해서는 조금 혼란 스러워요? 나는 그것을 알고Rails 3.1 Asset Pipeline에 Galleria (jQuery 이미지 갤러리 프레임 워크)를 넣을 위치는 어디입니까?

는, 기술적으로, /vendors/assets/javascripts하지만에 가야한다, 그것은, JQuery와 & 테마로 Galleria 폴더가 제대로 작동하기 위해 라이브 사이트의 루트 (/galleria)에 있고 싶어 내 이해입니다.

또한 우리는 여기에 다음 스크립트를 넣을 위치에 갤러리가있는 페이지에서만 나타납니다.

<script> 
    $('#gallery').galleria({ 
     width:500, 
     height:500 
    }); 
</script> 

편집는 : 깜짝 응답이 없다!?! 아마도 갤러리아는 그다지 인기가 없을 것입니까? 이것들은 내가로드하려고하는 파일들입니다. 그들은 다음과 같이 번들로 제공됩니다하지만 나는 쉽게 이동할 수 :

vendor/ 
    assets/ 
    javascripts/ 
     galleria-1.2.5.js 
     galleria-1.2.5.min.js 
    galleria/ 
     themes/ 
     classic/ 
      classic-loader.gif 
      classic-map.png 
      galleria.classic.css 
      galleria.classic.js 
      galleria.classic.min.js 

내가
require_tree .app/assets, lib/assetsvendor/assets 모든 것을로드합니다 톱니 생각?!?

+0

좋은 질문입니다. 미안하지만 나는 그들에 대한 답을 모른다. – Andrew

답변

2

나는 또한이 문제를 발견했습니다. 기존의 라이브러리를 현재의 javascript/stylesheets 구조에 맞게 나누면 약간의 번거 로움이 있습니다. ,

# Enable the asset pipeline 
    config.assets.enabled = true 
    config.assets.paths << "#{Rails.root}/app/assets/libs" 

앱/자산 아래에 'libs와'폴더를 만들고이 폴더에 갤러리아 라이브러리를 복사에 이것을 추가 : 그 때문에이 같은에서 자산을로드 할 application.rb 파일에 추가 경로를 추가 할 수 있습니다 응용 프로그램 레이아웃 파일 :

<%= javascript_include_tag 'galleria/galleria-1.2.4.min.js' %> 
    <%= javascript_include_tag 'galleria/themes/classic/galleria.classic.min.js' %> 

은 또한 JS 파일을 요구함으로써 갤러리아 코드를 묶을 수 있지만, 그건 당신에게 달려 있습니다.

22

나는 똑같은 문제가있어서 일하는 데 시간이 걸렸다. 처음에는 개발이 잘 될 것이지만 프로덕션으로 이전했을 때는 현재 자산 파일 이름이 "지문"으로 인해 Galleria가 자동으로 실패했습니다. 이것은 또한 jQuery UI 테마 및 기타 많은 스크립트에서 문제가되는 것으로 보입니다.

물론 이전 일을하고 "public"으로 모든 것을 던질 수는 있지만 모든 css/js 파일을 자동으로 병합하고 일을 레일 방식으로 수행하는 장점이 있습니다.

vendor/ 
    assets/ 
    images/ 
     classic-loader.gif 
     classic-map.gif 
    javascripts/ 
     galleria-1.2.5.js 
     galleria.classic.js 
    stylesheets 
     galleria.classic.css.scss 

galleria.classic.css.scssgalleria.classic.css 파일의 이름을 바꿉니다 :

이것은 내가 일하고 그것을 가지고하는 방법입니다. 그래서 (내가이 있었다) 같은 그런 이미지 참조를 대체 :

url("classic-loader.gif")image-url("classic-loader.gif")

업데이트됩니다 : 당신이 레일 3.1.1에서이 작업을 수행 할 필요가없는 것 같습니다. 파일 이름을 .css.scss로 바꾸면 레일스가 자동으로 url() 호출을 미리 처리합니다.당신의 app/assets/javascripts/application.js 파일에서

, 당신은

*= require galleria.classic 
*= require_tree . 

마지막으로 라인을 가지고 있는지 확인하십시오, 당신에

//= require galleria-1.2.5 
//= require galleria.classic 
//= require_tree . 

app/assets/stylesheets/application.css 파일 당신이 라인을 가지고 있는지 확인은 갤러리아는 일부 공상 비를 갖고있는 것 같아요 -standard css loading이 내장되어있어 Galleria가 제작 웹 사이트에로드되는 것을 막았습니다. 이미 스타일 시트가 포함되었으므로이 동작을 비활성화하고자합니다. 간단하게 galleria.classic.js을 열고 (또는 갤러리아 테마 자바 스크립트 파일) 및 라인을 교체 :

css: 'galleria.classic.css', 

로 :

css: false, 

이 스타일 시트를로드하려고하지 갤러리아을 알려드립니다.

한 가지 더 - 이러한 자산을 컴파일하려고 할 때 나는 분명히 bug in Rails 3.1.0 인 것을 봤습니다. 내가 rake assets:precompile를 실행했을 때, 나는이 같은 오류를 가지고 :

$ bundle exec rake assets:precompile 
rake aborted! 
classic-loader.gif isn't precompiled 
    (in /vendor/assets/stylesheets/galleria.classic.css.scss) 

길고도 짧은 이야기를, 당신은 config/environments/production.rb이 라인을 설정해야합니다 3.1.1이 출시되면

config.assets.compile = true 

이 필요는 없습니다.

+2

도서관 코드를 바꾸고 싶지 않습니다. 즉,'url (...)'을'image-url (...)'으로 바꾸는 것을 좋아하지 않습니다. 나는 그들이 공용 폴더에 머 무르도록 노력할 것입니다. – crispy

+0

레일즈 3.1 자산 파이프 라인의 굉장한 이점을 얻는 유일한 방법은 라이브러리 코드를 변경하는 것뿐입니다. –

+0

스타일 시트에서 참조 된 이미지에 어떤 이점이 있습니까? 지문 채취 ...? – crispy

3

Arjen의 제안을 좋아하지만, vendor/assets/libs이 더 적절하다고 생각합니다. 여기 내 설치가있다 : 설정에서

/application.rb

응용 프로그램/자산/자바 스크립트에서
config.assets.enabled = true 
config.assets.paths << "#{Rails.root}/vendor/assets/libs" 

은/

//= require galleria/galleria-1.2.6.min.js

초기화 application.js :

Galleria.loadTheme('assets/galleria/themes/classic/galleria.classic.min.js'); 
$('#gallery').galleria(); 

loadTheme()에 전달 된 경로가 'a ssets '.

galleria 폴더를 손상시키지 않기 때문에이 설정이 마음에 들었습니다. 또한 galleria-1.2.6.min.js을 내 주 js 파일 (하나 적은 http 요청)에 연결합니다.

+0

또한이 솔루션을 사용해 보았지만 개발 과정에서 작동하는 것은 프로덕션에서 중단되었습니다. 나는 loadTheme ('assets/gall ...') 또는 loadTheme ('/ assets/gall ...')이나 어떤 것을 시도해도 테마를 찾지 못합니다. 내가받는 모든 것 : 치명적인 오류 : assets/galleria/themes/classic/galleria.classic.min.js의 테마를로드 할 수 없습니다. 테마 경로 –

+0

@KarstenS를 확인하십시오. 내가 제안하는 설정은 모든 제작 수준에 적용됩니다. dev와 prod의 차이, 특히 자산 파이프 라인 구성을 찾으십시오. –

관련 문제