У меня есть пара js-файлов в файле application.js. Такие как;Rails-конвейер ресурсов - пользовательские файлы js
//= require jquery
//= require jquery_ujs
//= require dropzone
//= require jquery.cookie
//= require toastr
//VENDOR JS BEGINS
//= require pace/pace.min
//= require modernizr.custom
//= require jquery-ui/jquery-ui.min
//= require boostrapv3/js/bootstrap.min
//= require jquery/jquery-easy
//= require jquery-unveil/jquery.unveil.min
//= require jquery-bez/jquery.bez.min
//= require jquery-ios-list/jquery.ioslist.min
//= require jquery-actual/jquery.actual.min
//= require jquery-scrollbar/jquery.scrollbar.min
//= require bootstrap-select2/select2.min
//= require switchery/js/switchery.min
//= require imagesloaded/imagesloaded.pkgd.min
//= require jquery-isotope/isotope.pkgd.min
//= require classie/classie
//= require codrops-stepsform/js/stepsForm
//= require bootstrap-datepicker/js/bootstrap-datepicker
//= require bootstrap-datepicker/js/locales/bootstrap-datepicker.tr.js
//= require bootstrap-datepicker/js/locales/bootstrap-datepicker.en.js
//= require summernote/js/summernote.min
//= require moment/moment-with-locales.min
//= require bootstrap-daterangepicker/daterangepicker
//= require bootstrap-timepicker/bootstrap-timepicker.min
//= require codrops-dialogFx/dialogFx
//= require ion-slider/ion.rangeSlider.min
//= require owl-carousel/owl.carousel.min
У меня также есть пара js-кодов на страницах html.erb. Но я хочу, чтобы все js-коды, специфичные для конкретной страницы, были добавлены в 1 файл. Этот файл следует вызывать после загрузки страницы. Потому что некоторые из них используют рубиновый код, такой как init lat lng карт google. Кроме того, пара js-файлов, таких как;
//= require codrops-dialogFx/dialogFx
//= require ion-slider/ion.rangeSlider.min
работает после загрузки страниц. Таким образом, они не работают, поскольку я помещаю их в заголовок как;
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
Так что если я, дизайн application.js as;
//= require jquery
//= require jquery_ujs
//= require dropzone
//= require jquery.cookie
//= require toastr
Затем вызовите <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
в головной метке затем вызвать все остальные JS файлы в теге тела как
<%= javascript_include_tag 'pace/pace.min', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'modernizr.custom', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'jquery-ui/jquery-ui.min', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'boostrapv3/js/bootstrap.min', 'data-turbolinks-track' => true %>
....
Существуют ли в рельсах precompiles эти файлы также ?. У меня эти файлы js в файле поставщика.
Нет, конечно, я буду удалять // = требуется темп/темп. мин, если я так выразился; <% = javascript_include_tag 'темп/темп.мин', 'data-turbolinks-track' => true%>. –
Например, я загрузил индивидуально как; '<% = javascript_include_tag 'темп/темп.min', 'data-turbolinks-track' => true%>'. Теперь он дает ошибку; Атрибут отфильтрован и не будет обслуживаться: добавьте 'Rails.application.config.assets.precompile + =% w (темп/темп.min.js)' в 'config/initializers/assets.rb' и перезагрузите сервер. Так что я должен добавить их все так? –
Да, вот что я имел в виду на последней строке моего ответа. Вы также можете добавлять папки с помощью 'config.assets.paths'. Поэтому, если вы хотите включить все «vendor/assets», вы могли бы сделать: 'config.assets.paths << Rails.root.join ('vendor', 'assets')' –