首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails资产管道-自定义js文件

Rails资产管道-自定义js文件
EN

Stack Overflow用户
提问于 2016-05-15 12:41:51
回答 1查看 663关注 0票数 0

我在application.js文件中有两个js文件。例如;

代码语言:javascript
复制
//= 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

我在html.erb页面中也有几个js代码。但是我想把所有特定于页面的js代码放到一个文件中。此文件应在页面加载后调用。因为他们中的一些人使用红宝石代码,比如谷歌地图的init液化天然气。另外,有几个js文件,如;

代码语言:javascript
复制
    //= require codrops-dialogFx/dialogFx
   //= require ion-slider/ion.rangeSlider.min 

在加载页面后工作。所以,他们不工作,因为我把他们的头标签;

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

所以如果我,把application.js设计成;

代码语言:javascript
复制
//= require jquery
//= require jquery_ujs
//= require dropzone
//= require jquery.cookie
//= require toastr

然后在head标记中调用<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>,然后调用正文标记中的所有其他js文件,如下

代码语言:javascript
复制
<%= 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 %>
....

rails也预编译这些文件吗?我在供应商文件中有这些js文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-15 12:46:47

是的,Rails将预编译它在javascript_include_tag中找到的所有文件,前提是它可以在资产路径中找到它们。

但是,为已经在javascript_include_tag中声明的资产添加application.js是多余的,因为它们实际上将在HTML中加载两次。

如果需要在正常加载路径之外包含资产,则需要告诉Rails在application.rb中预编译自定义文件:

代码语言:javascript
复制
config.assets.precompile << 'path/to/asset'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37238434

复制
相关文章

相似问题

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