JS, JQuery не работает с героку

Я новичок в веб-разработке. Как говорится в заголовке, у меня возникла проблема с моим JS в Heroku. Я использую ruby ​​on rails 5.1, и когда я отправляю свой проект в мастер Heroku, все работает нормально, но JavaScript. Я гуглил это последние 2 дня. Я пытался организовать //= require и т. д., пытался изменить свой код, пытался изменить config.assets.compile = false на true и пробовал от 4 до 5 разных результатов здесь, в StackOverflow, например (Функции Javascript работают на локальном хосте, но не при развертывании в Heroku) . На самом деле не знаю, что еще я могу сделать. Вот мое приложение.js

//= require jquery
//= require rails-ujs
//= require turbolinks
//= require jquery.easing
//= require bootstrap-sprockets
//= require creative
//= require_tree .

$(document).on('turbolinks:load', function() {
// Offset for Main Navigation
$('#mainNav').affix({
    offset: {
    top: 50
}
});

$("#button-transform").click(function() {
  $('.transform').toggleClass('transform-active');
});

window.setTimeout(function() {
$("#flash").fadeTo(2500, 0).slideUp(1750, function() 
{
    $(this).remove();
});
}, 3000);

});

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Спасибо


person Yves Ramos    schedule 15.08.2017    source источник
comment
До сих пор я пробовал то, что сказал мне @Chris, с $(document).ready(function() {});. Та же проблема. Работает на локальном сервере, но не в Heroku. Пробовал переставить //= требует снова, тот же результат. Пытался поместить все JS в отдельный файл, а также в приложение, но это не работает. Гуглил взад-вперёд, безрезультатно. Я также следил за руководством в GitHub для турболинка, пока ничего. Разочаровываться теперь. Любые другие предложения. Спасибо.   -  person Yves Ramos    schedule 16.08.2017


Ответы (2)


Мне удалось решить мою проблему. В конце концов, после нескольких часов исследований, я отказался от этой проблемы и начал заниматься стилем CSS. Когда я попытался добавить новый CSS в Heroku, у меня возникла та же проблема. Не отображается обновленный CSS в Heroku. Опять же, провел некоторое исследование и нашел это;

bundle exec rake assets:precompile

Сначала это не сработало для меня. В нем говорилось, что мне нужно установить yarnpkg, который у меня уже был. Итак, я провел еще несколько исследований и, наконец, заметил, что я не смог выполнить пакет exec rake assets:precompile, потому что я был в репозитории ветки, а не в мастере. Сделал проверку на мастере, снова запустил команду, проверил CSS, все работает. а также JQuery. Чтобы ответить на мой вопрос,

bundle exec rake assets:precompile

была команда, которая помогла мне.

Шаги

bundle exec rake assets:precompile
git add --all
git commit -m "some message"
git push heroku master
person Yves Ramos    schedule 17.08.2017
comment
Самый лучший ответ! 2 дня пытался исправить - person nourza; 11.12.2020

jQuery Turbolinks не поддерживает готовые события, связанные через $(document).on('ready', function). Вместо этого используйте $(document).ready(function) или $(function).

Это не сработает:

$(document).on('ready', function () { /* ... */ });

Эти два гарантированно работают:

$(document).ready(function () { /* ... */ });
$(function () { /* ... */ });
person Ravi Kiran    schedule 15.08.2017
comment
Привет, спасибо за ответ. Я новичок в JS. Когда вы говорите $(document).on('ready', function () { /* ... */ }); вы имеете в виду $(document).on('turbolinks:load', function() {}? - person Yves Ramos; 15.08.2017