2016-09-06 6 views
0

나는 클래스와 요소 내의 모든 이미지에 클래스를 추가해야 JS 코드가 :레일 5 JS 컴파일 된 코드는 생산에서 작동하지 않는 경우에만

: 그것은 같은 외모를 작동합니다

$(document).on('turbolinks:load', function() { 
    $('.blog-article img').addClass('img-fluid'); 
}); 

보기

<div class="blog-article"> 
    <p><img src="http://image_address..." alt=""></p> 
</div> 

완벽하게 작동합니다. 하지만 브라우저 콘솔을 사용하여 자산에서 볼 수 있지만 프로덕션 환경에서이 코드는를 작동하지 않습니다

$(document).on("turbolinks:load",function(){$(".blog-article img").addClass("img-fluid")}); 

어떤 아이디어? 감사합니다.

추신. application.js 파일 :

//= require jquery 
//= require bootstrap-sprockets 
//= require jquery_ujs 
//= require turbolinks 
//= require_tree . 

$(document).on('turbolinks:load', function() { 
    $('.blog-article img').addClass('img-fluid'); 
}); 

PPS.

enter image description here

을 그리고 여분의 공백이있다, 그래서 그것은 원인이 이유가 될 수 있습니다 - 그리고 흥미로운 순간 내가 생산에 콘솔에서 볼 때, JS 코드는 다음과 같습니다.

.blog-  article 
.blog_  article 
.blog  article 
.  article 

을 그리고 위에서 설명한대로 내가 개발에 올바른 모든 것을 가지고있다 -하지만 slass 교체 이름을 바꿀 때 _ 또는를 제거하거나 .article 떠나, 아직 생산에 여분의 공간이있다.

재미있는 점은 - 콘솔에서 코드를 복사하면 이러한 "여분의 공간"이 사라집니다.

+0

application.js를 붙여 넣을 수 있습니까? 로드 순서와 관련하여 비슷한 문제가있었습니다. – rorykoehler

+0

@rorykoehler 설명에 추가되었습니다. 고맙습니다! –

+0

그리고 application.js에 커스텀 js를 쓰는 이유는 무엇입니까? 어떤 좋은 연습이 아니에요 – Yoosuf

답변

0

난 당신이 내가 당신이 부트 스트랩을 사용하고 참조

jQuery ($) -> 
    $(document).on "turbolinks:load", -> 
+0

나는 별도의 커피 파일에 넣으려고했지만 결과가 동일합니다 - 개발에서 작동, 코드가 컴파일되어 프로덕션에 존재하더라도 (브라우저 콘솔에서 볼 수 있음) –

+0

rake assets을 시도하십시오 : RAILS_ENV = production – Yoosuf

+0

캐피 스트라 노가 자산을 사전 컴파일합니다. 코드를 별도의 커피 파일로 옮긴 다음 jQuery (function (t) {return t (document) .on ("turbolinks : load", function() {return t (".blog-article img "). addClass ("img-fluid ")} 그래야 효과가 있다고 생각합니다. –

1

을 다음과 같이 .js.coffee을 시작하는 것이 좋습니다. 부트 스트랩 4는 오류를 생성하지 않고 '테더'가 작동해야합니다. 컴파일 된 자바 스크립트가 하나의 행으로 압축되기 때문에 오류가 발생하면 모든 자바 스크립트가 작동을 멈 춥니 다. :)

Tether를 설치하면 더 잘 작동합니까?

https://github.com/twbs/bootstrap-rubygem/blob/master/README.md#installation

+0

이것은 또한 내 문제를 해결했다. 고마워. –