JS wykonuje się tylko po CTRL-F5 (nie ładuje automatycznie)

Witam,

Mam nowego lapka z Ubuntu i jestem na etapie “przeprowadzki” :slight_smile:
Zainstalowałem RVM, Rubiego, Railsy i …pojawił mi się problem.

Działające dotychczas na starym lapku aplikacje nie działają na nowym poprawnie i ładują kod JavaScript dopiero po odświeżeniu strony.

O czym zapomniałem konfigurując nowe środowisko?

(ruby 2.3.1, rails 4.2.4)

Mi to bardziej wygląda na problem z turbolinkami i jquery niż na błąd w konfiguracji laptopa :wink:

Też tak sądzę, ale … nie zmieniałem ani linijki kodu aplikacji i na starym lapku działa, a na nowym nie chce.
Czego nie zainstalowałem lub mogłem zainstalować nieprawidłowo (chodzi o dodatki) ?

Widzę, że gem ‘turbolinks’ był modyfikowany kilka dni temu, a ja na nowym lapku uruchamiałem “bundle” więc może tutaj coś się zmieniło… hmmm…

No tak mi “zbundlowało”:
gem list:
gem ‘turbolinks’, ‘5.0.0’

…a po wpisaniu “z rączki”
gem ‘turbolinks’, ‘2.5.3’

…maszyna ruszyła! :slight_smile:

Dzięki za naprowadzenie! :slight_smile:

A propos …
Co zrobić, by turbolink 5 automatycznie uruchamiał kod zapisany w plikach.js ?

Zależy od tego co jest przyczyną nieuruchamiania tych plików JS. Zakładam że problemem jest używanie w nich $(document).ready() w takim wypadku skorzystaj z gemu jquery.turbolinks. Docelowo warto byłoby przepisać zdarzenia wykorzystujące zdarzenie ready na zdarzenie odpowiednie dla turbolinków czyli turbolinks:load, a następnie przetestować całość jeszcze raz bez gemu jquery.turbolinks (żeby ograniczyć ilość wykorzystywanych gemów). Oczywiście jeżeli w projekcie korzystasz z zewnętrznych bibliotek wykorzystujących zdarzenie ready to nic nie poradzisz i musisz zostawić jquery.turbolinks.

Miałem ostatnio podobny problem, usunąłem turbolinki i działa :slight_smile:

Dzięki za rady.

No i tutaj pojawia się pewne pytanie… JQuery.turbolinks nie jest od 2 lat modyfikowany, a Turbolinks 5.0.0 jest domyślnie dodawany w Rails 5.
Czy to oznacza, że chcąc zmodyfikować aplikację do Rails 5 czeka nas przepisywanie (jak wspominał @jmarceli ) starych programów?

Szczerze mówiąc ja też zrezygnowałem z turbolinków. Jeśli spojrzysz w kod jquery.turbolinks https://github.com/kossnocorp/jquery.turbolinks/blob/master/vendor/assets/javascripts/jquery.turbolinks.js to zobaczysz że nie jest to zbyt skomplikowany gem, być może dlatego od dłuższego czasu nie jest modyfikowany i poprawiany.