0

프로덕션 환경에서 작동하도록 애셋 파이프 라인에서 컴파일 된 내 javascript 함수를 가져 오는 데 문제가 있습니다. 개발 과정에서 잘 작동합니다.Rails 3.2 및 jQuery 함수가 프로덕션에서 작동하지 않습니다.

자바 스크립트

# app/assets/javascript/subscribe.js 

$(function() { 
    $('#fat-btn').click(function() { 
    var btn = $(this) 
    btn.button('loading') 
    setTimeout(function() { 
     btn.button('reset') 
    }, 2000) 
    }); 
}); 

내보기

내 응용 프로그램 자바 스크립트

# app/assets/javascript/application.js 

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

어떤 도움이 많이 감사한다

# app/assets/subscribe.html.erb 

<div class="subscribe"> 
    <%= form_tag subscribe_path, class: "form-inline" do %> 
     <%= text_field_tag :email, nil, :type=>"email", :placeholder => 'Your email address' %> 
     <%= button_tag "Go", id: "fat-btn", class: "btn", data: { "loading-text" => "loading...", "toggle" => "button"} %> 
    <% end %> 
</div> 

. 고맙습니다.

답변

1

내 경우에는 이전과 같이 JQuery의 여러 인스턴스를 호출하고있었습니다. So :

  • JQuery의 인스턴스를 여러 개 호출하지 않는지 확인하십시오.

  • coffeescript를 사용하고 있으며 개발시에 오류가 있습니다 (필자의 경우 여분의 공백이 있음). 모두 잘 될 수 있지만 producion에서는 그렇지 않습니다. 다시 컴파일 할 때 콘솔의 로그에 문제가 있으면이를 지적해야합니다. 당신이 개발
    및 생산
    에있을 때 방화범에 오류가있는 경우

  • 을 참조하십시오.

  • 모두 실패하면 자산을 정리하고 사전 컴파일하려고 시도 할 수 있습니다.
    다시.

0

프로덕션 모드에서 페이지를로드하는 동안 브라우저에서 네트워크 콘솔을 확인할 수 있습니까? 일부 애셋이로드되지 않은 것 같습니다.

그렇다면 레일스 환경 설정에서 config.serve_static_assets를 false로 설정해야합니다 (기본적으로 프로덕션 모드에서). config/environments/production.rb 파일을 점검하십시오.

+0

안녕하세요 4pcbr, 답장을 보내 주셔서 감사합니다. 네트워크 콘솔에는 application.js에 컴파일 된 함수가 있습니다. 그것의 컨트롤러에 subscribe.js의 이름을 바꿀 것입니다. 무엇이든. 커피 파일 도움? –

+0

아니요, 중요하지 않습니다. 당신이 잡는 오류에 대한 더 많은 정보를 제공해 주시겠습니까? 정확히 무슨 일이 벌어지고 프로덕션 환경에서 dev 서버를 실행하는 동안 볼 수 있습니까? – icanhazbroccoli

+0

시간을 내 주셔서 다시 한 번 감사드립니다. –

1

하이 budy 할하시기 오류를 확인하십시오 전에 생산 모드

------ enviorment.rb -----

::ActiveSupport::Deprecation.silenced = true 
에 배포 파일의 변경 사항을 다음

------ Production.rb -------

config.assets.compile = ['*.js', '*.css'] 
config.active_support.deprecation = :silence 
,

------- application.rb -------

config.assets.enabled = true 
config.assets.initialize_on_precompile = false 
+0

의견을 보내 주셔서 감사합니다. 시간을 내 주셔서 감사합니다. –