首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails资产管道-只向头添加jquery

Rails资产管道-只向头添加jquery
EN

Stack Overflow用户
提问于 2016-05-13 17:37:53
回答 1查看 536关注 0票数 0

我有几个js文件,并将它们放入供应商/资产/js中。然后,我要求它们在应用程序js文件中作为;

代码语言:javascript
复制
//= 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
复制
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>    

问题是,我在..html.erb文件中有几个js代码,这需要首先加载页面。但是我想把它们合并到js文件中。我想做的是只在head标记中调用jquery,并在正文中调用应用程序js文件。但是,如果我删除jquery并将其称为;

代码语言:javascript
复制
<%= javascript_include_tag 'jquery.min', 'data-turbolinks-track' => true %>    

Rails给出了一个关于jquery_ujs的错误。当然,我也可以在那里添加jquery_ujs。但是什么是最好的练习呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-13 18:10:15

将页面特定的js代码添加到rails应用程序(从而避免在只需要一个页面需要库或脚本时在每个页面中加载js )的最常用方法是在布局/application.html.erb文件的最底部添加关闭正文标记之前的文件:

代码语言:javascript
复制
    <%= yield :javascript %>

  </body>
</html>

然后,在您希望运行一些javascript片段的视图上,您应该在关闭了所有html标记之后将其放在它的最底部。确保它不是在某些div或任何东西的视图中,而是在它的最底层。

更新引用Fred:

代码语言:javascript
复制
<%= content_for :javascript do %>
  <script type="text/javascript">
   $(document).on('page:load', function() {
       all your code here..
     });
  </script>
<% end %>

现在,这段代码将只加载到您需要的特定视图上,而不是与您的资产/js文件夹中的所有其他资产连接在一起。我这样做的所有定制js都不是广泛的应用程序,而且维护/调试非常容易。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37216166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档