【发布时间】:2016-05-13 17:37:53
【问题描述】:
我有几个 js 文件,我将它们放入 vendor/assets/js。然后我在应用程序 js 文件中要求它们为;
//= require jquery
//= require jquery_ujs
//= require dropzone
//= require jquery.cookie
//= require toastr
//VENDOR JS BEGINS
//= require pace/pace.min
//JQuery buraya gelecek sonra
//= 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
//VENDOR JS ENDS
在页面顶部我需要 jquery 并且 jquery_ujs 属于 jquery。现在,我将应用程序 js 文件加载为;
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
问题是,我在 ..html.erb 文件中有几个 js 代码,需要先加载页面。但我想将它们合并到一个 js 文件中。我想做的是在 head 标签中只调用 jquery 并在 body 中调用应用程序 js 文件。但是,如果我删除 jquery gem 并将其称为;
<%= javascript_include_tag 'jquery.min', 'data-turbolinks-track' => true %>
Rails 给出关于 jquery_ujs 的错误。当然我也可以在那里添加 jquery_ujs 。但是最好的做法是什么?
【问题讨论】:
-
使用 turbolinks 的最佳实践是在头部添加尽可能多的脚本,而在正文中只包含绝对必要的脚本。尝试将脚本从 html.erb 文件中的主体拉到头部,如果它中断,则仅将其移动到主体。
标签: javascript jquery ruby-on-rails ruby assets