2012-05-11 3 views
11

어제까지 jQuery가 내 Rails 앱에서 정상적으로로드되었습니다. 나는 디버거/루비 - 디버그 보석을 설치하는 것과 함께 놀고 있었다. 아마도 Rails 3에서 디버거 젬에 문제가 있다는 것을 알고 있었기 때문에 의존성을 얻지 못해서 Gemfile에서 젬을 제거했습니다. 그 이후로 내 사이트를로드 할 때 jQuery가로드되지 않습니다. 다음은 내가 콘솔에서 볼 수있는 메시지입니다 :Rails 3.2.3 앱에서 jQuery가로드되지 않는 이유는 무엇입니까?

assets/jquery_ujs.js?body=1:377Uncaught ReferenceError: jQuery is not defined 
bootstrap-transition.js:24Uncaught TypeError: undefined is not a function 
bootstrap.js:3Uncaught ReferenceError: jQuery is not defined 
welcome:210Uncaught ReferenceError: $ is not defined 

을 그리고 여기 내 application.js 파일 : 나는과 같이 명시 적으로 레이아웃/application.html.erb에 jQuery를로드하는 경우, 그것을

//= require jquery 
//= require jquery_ujs 
//= require twitter/bootstrap 
//= require_tree . 

작품 :

<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" %> 
<%= javascript_include_tag "application" %> 

이 문제를 해결하고 jQuery를 다시로드하려면 어떻게해야합니까? .rvm/gems/ruby-1.9.3-p125/gems/jquery-rails-2.0.2/vendor/assets/javascripts를 보면 jquery.js를 볼 수 있고 jquery.min.js는 여전히 존재합니다.

+0

gemfile에 여전히'gem 'jquery-rails'' 행이 있습니까? –

+0

물론입니다. 보석에도 'jquery-rails'가 성공적으로 설치되었습니다. –

+0

jquery 라이브러리를 app/assets/javascripts 폴더에 넣으려고 했습니까? – uday

답변

11

감사합니다. @Djj. 내 application.js 트리를 다시 주문하면 문제가 해결 된 것으로 보입니다. 다음은 수정 된 트리입니다.

//= require jquery_ujs 
//= require jquery 
//= require twitter/bootstrap 
//= require jquery.placeholder 
//= require_tree . 
+1

이것이 작동하는 이유는 무엇입니까? – tibbon

+0

이것은 내 문제도 해결했습니다! – kibaekr

0

오랜 시간이 지난 후에 오류로 인해이 문제가 해결되었습니다.

Jquery가 한 번만로드되는지 확인하십시오.

는 Gemfile에 gem 'jquery-rails'을 포함하고

$ bundle installapp/assets/javascripts/application.js 파일에 다음을 포함해야합니다 않습니다.

//= require jquery 
//= require jquery_ujs 

구문이 잘못된 경우 // require jquery과 같이 jquery가로드되지 않습니다.

모든 것이 제대로 포함되어 있으면 HTML 파일의 페이지 소스에 포함 된 모든 소스 파일이 표시되어야합니다.

jquery 플러그인 소스를 Google의 application.html.erb에 명시 적으로로드 했으므로 app/views/layouts에서 application/assets/javascript 아래의 application.js 파일에 jquery 플러그인 소스가 필요하기 때문에 문제가 발생했습니다. 이로 인해 jquery가 다시 정의되고 placeholder()과 같은 오류가 정의되지 않았으므로 null에 대해 oApi이 정의되지 않았습니다.

4

제 경우에는 문제가 비동기 적으로 javascript 파일을로드하기 때문입니다.

<%= javascript_include_tag "application", :async => true %> 

<%= javascript_include_tag "application" %> 

로 다시 전환 문제를 해결했다.

+0

이것은 나를 위해 그것을 또한 고쳤다. 비동기 문제를 일으키는 이유는 무엇입니까? – Marklar

관련 문제