2016-05-15 12 views
0

私はapplication.jsファイルにいくつかの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 

また、html.erbページにいくつかのjsコードがあります。しかし、私はすべてのページ固有のjsコードを1つのファイルに入れたい。このファイルは、ページが読み込まれた後に呼び出す必要があります。その中には、Googleマップのinit lat lngなどのルビコードを使用するものもあるためです。また、jsファイルのカップルなど。

//= require codrops-dialogFx/dialogFx 
    //= require ion-slider/ion.rangeSlider.min 

ページが読み込まれた後に動作します。だから、私は頭のタグにそれらを置くように彼らは動作しません。

<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>  

だから私は、application.jsを次のように設計します。

//= require jquery 
//= require jquery_ujs 
//= require dropzone 
//= require jquery.cookie 
//= require toastr 

そして、その後、

<%= 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 %> 
.... 

いレールも、これらのファイルをプリコンパイルのようにbodyタグ内の他のすべてのjsファイルを呼び出すヘッドタグで<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>を呼びます?。私はベンダーファイルにこれらのjsファイルを持っています。

答えて

1

はいRailsはそれはそれはあなたの資産・パス内でそれらを見つけることができると仮定しjavascript_include_tagで見つかったすべてのファイルをプリコンパイルします。

application.jsですでに宣言されているアセットには、実際にHTMLに2回読み込まれるため、javascript_include_tagを追加するのは冗長です。あなたは、通常のロードパスの外に資産を含める必要がある場合

、あなたはapplication.rbにカスタムファイルをプリコンパイルするためのRailsに伝える必要があります:

config.assets.precompile << 'path/to/asset' 
+0

いいえ、ofcourseの私は削除させていただきます// =もし私がこのように置くなら、pace/pace.minが必要です。 <%= javascript_include_tag 'pace/pace.min'、 'data-turbolinks-track' => true%> –

+0

たとえば、私は個別にロードしました。 '<%= javascript_include_tag 'pace/pace.min'、 'data-turbolinks-track' => true%>'のようになります。これでエラーになります。資産は除外して提供されることはありませんします。config /初期化子/ assets.rb' 'に' Rails.application.config.assets.precompile + =%のワット(ペース/ pace.min.jsを) 'を追加し、サーバーを再起動します。..私はこのようにすべてを追加しなければならないのですか? –

+0

うん、それは私の答えの最後の行に何を意味したのですか? 'config.assets.paths'を使ってフォルダを追加することもできます。したがって、すべてのベンダー/アセットを含めるには、次のようにします: 'config.assets.paths << Rails.root.join( 'vendor'、 'assets')' –

関連する問題