Выпуск трубопровода Heroku Rails JS - PullRequest
0 голосов
/ 27 апреля 2018

У меня были проблемы со съемкой этой проблемы, и я застрял.

У меня есть приложение rails 4.1.0, использующее Bootstrap 4. Все работает локально, но когда я нажимаю на свой рабочий сервер heroku, js компилируется, но все js на странице не работают.

В логах сервера нет ошибок, однако в консоли есть ошибки:

Uncaught ReferenceError: Поппер не определен at application-21bd05413e87683d1fbc6420906ba3317d416c1d0b78d17c25e793b78e405352.js: 5 (индекс): 85 Uncaught TypeError: $ (...). datetimepicker не является функцией на HTMLDocument. ((Индекс): 85) в l (application-21bd05413e87683d1fbc6420906ba3317d416c1d0b78d17c25e793b78e405352.js: 2) в Object.fireWith [as resolWith] (application-21bd05413e87683d1fbc6420906ba3317d416c1d0b78d17c25e793b78e405352.js: 2) в Function.ready (application-21bd05413e87683d1fbc6420906ba3317d416c1d0b78d17c25e793b78e405352.js: 2) в HTMLDocument.a (application-21bd05413e87683d1fbc6420906ba3317d416c1d0b78d17c25e793b78e405352.js: 1)

установленных камней:

gem 'rails', '4.2.6'
gem 'sqlite3', group: :development
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'puma'
gem 'devise'
gem 'omniauth'
gem 'omniauth-facebook', '~> 4.0.0'
gem 'pg', '~> 0.18.4'
gem 'bootstrap', '~> 4.1.0'
gem 'sprockets-rails', :require => 'sprockets/railtie'
gem 'bootstrap-glyphicons'
gem 'bootstrap-select-rails'
gem 'momentjs-rails', '>= 2.9.0' 
gem 'bootstrap4-datetime-picker-rails'
gem 'client_side_validations'
gem 'validates_timeliness', '~> 4.0' 
source 'https://rails-assets.org' do

  gem 'rails-assets-tether', '>= 1.3.3'

end
group :development, :test do

  gem 'byebug'

end
group :development do

  gem 'web-console', '~> 2.0'
  gem 'spring'
end

application.js:

//=require tether
//=require popper
//=require turbolinks
//=require jquery3
//=require jquery_ujs
//=require bootstrap-sprockets
//=require_tree
//=require moment
//=require tempusdominus-bootstrap-4.js
//=require bootstrap-select
//=require rails.validations
//=require bootstrap/alert
//=require bootstrap/dropdown

Большинство людей с похожими проблемами смогли исправить их, изменив порядок библиотек в файле application.js, но я пробовал практически каждую комбинацию, перемещаясь по jquery, bootstrap, popper, без какого-либо успеха.

Я не уверен, что еще можно попробовать.

1 Ответ

0 голосов
/ 27 апреля 2018

Я бы посмотрел ваши логи развертывания из heroku и убедился, что ваши ресурсы прекомпилируются. Кроме того, вы должны использовать CDN, например s3, для обслуживания этих ресурсов, а не напрямую из Heroku. Например, пример из моего последнего развертывания: Preparing app for Rails asset pipeline Running: rake assets:precompile yarn install v1.6.0 [1/5] Validating package.json... [2/5] Resolving packages... [3/5] Fetching packages... info fsevents@1.1.3: The platform "linux" is incompatible with this module. info "fsevents@1.1.3" is an optional dependency and failed compatibility check. Excluding it from installation. [4/5] Linking dependencies... warning "@rails/webpacker > postcss-cssnext@3.1.0" has unmet peer dependency "caniuse-lite@^1.0.30000697". [5/5] Building fresh packages... Done in 19.81s. Webpacker is installed ? ? Using /tmp/build_c920754b3e4f6f8ef59d547c2751d714/config/webpacker.yml file for setting up webpack paths Compiling… Compiled all packs in /tmp/build_c920754b3e4f6f8ef59d547c2751d714/public/packs Asset precompilation completed (27.00s) Cleaning assets Running: rake assets:clean

Вы также можете использовать инспектор веб-браузера, чтобы узнать, где, по его мнению, должны находиться файлы JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...