5

Poszedłem za tutorialem tutaj http://railsforbeginners.com/chapters/chapter-9-infinite-scroll/ dla nieskończonego przewijania. Kod działa dobrze lokalnie, ale kiedy wdrażam go do prod. łącza stronicowania (1 2 3 4) nadal się wyświetlają, a nieskończone przewijanie nie uruchamia się. Próbowałem też dodać te pliki w assets.rb bez powodzeniajs.erb działa lokalnie, ale nie w produkcji

Przede Używam Rails 4 mój application.js wygląda to

//= require jquery2 
//= require jquery.turbolinks 
//= require jquery_ujs 
//= require jquery-ui.min 
//= require bootstrap-hover-dropdown.min 
//= require bootstrap.min 
//= require select2 
//= require infinite_scroll 
//= require turbolinks 

Controller action

respond_to do |format| 
     format.html 
     format.js { render "visitors/index" } 
end 

index.js.erb

$('#my-articles').append('<%= j render @articles %>'); 
<% if @articles.next_page %> 
$('.pagination').replaceWith('<%= j will_paginate @articles %>'); 
add_tweets(); 
<% else %> 
$(window).off('scroll'); 
$('.pagination').remove(); 
<% end %> 



function add_tweets(){ 
    <% @articles.each do |article|%> 
    handle_open_modal("<%= article.id %>"); 
    <%end%> 

} 
+0

Co powiesz na sprawdzanie narzędzi programistów internetowych i sprawdzanie w karcie sieciowej opcji 404? –

+0

Czy potrafisz usunąć turbolinki z aplikacji i sprawdzić –

+0

Czy możesz dodać konfigurację pliku production.rb? – Zero

Odpowiedz

0

Oto co zrobiłem, aby to działa przy użyciu This Reference

usunąłem turbolinks i wszystko to odniesienie

Następnie dodaje to do index.html.erb bez musiał użyć jQuery $(document).on('ready

if ($('#infinite-scrolling').size() > 0){ 
     $(window).on('scroll', function(){ 
      var more_posts_url = $('.pagination .next_page a').attr('href') 
      heights = $(document).height() - $(window).height() - 500 
      if(more_posts_url && $(window).scrollTop() > heights){ 
       $('.pagination').html('<img src="/assets/ajax-loader.gif" alt="Loading..." title="Loading..." />') 
       $.getScript(more_posts_url) 
      } 
     }); 
    } 

Następnie wszystkie *.js.erb zaczynają działać.

Starałem się unikać usuwania turbolinków, ale próbowałem zmusić go do pracy z nim.

0

w twojej assets.rb

Spróbuj linię:

config.assets.precompile += ['Index.js'] 

-> Szyny mogą odwoływać się tylko pliki według nazwy pliku

także (non ERB) aktywów jako kwestia stylu należy małe litery nazwy pliku : index.js.erb

+0

Jak wspomniałem powyżej, wypróbowałem plik 'assets.rb' zawierający twoje rozwiązanie bez powodzenia. Również WPR w indeksie to tylko literówka. Dzięki za próbowanie –

0

Czy upewniłeś się, że jQuery ładuje się? Zgodnie z sugestią powyżej, przechodząc do narzędzia programistów Sieć i ponowne ładowanie. Czy prekompilujesz swoje aktywa w środowisku produkcyjnym? Sprawdź, czy masz to config.serve_static_assets = true w config/environment.rb Dla Heroku i Rails 4 zobacz here

+0

Jquery załadowano poprawnie, a wszystkie zasoby zostały dodane poprawnie. Jak już wcześniej stwierdziłem w SOF i Google –