简体   繁体   中英

loading order JavaScript files in asset pipeline

I am using a Rails 4 application. I installed some JavaScript plugin files in "vendor/assets/javascripts", and some in "app/assets/javascripts" where I have some files that are invoking methods from the vendor files.

No methods from these are recognized and it seems that "app/assets/javascripts" files are loaded before "vendor/assets/javascripts" files. How can I deal with that?

For information my "application.js" calls:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require rails.validations
//= require_tree .

and I am using gem 'jquery-rails' .

Any files in your vendor tree that you need must be required explicitly in your "application.js". It will pull in all the JavaScript in your "app/assets/" tree using the "require_tree".

You probably need to update your file to look something more like this:

//= require jquery
//= require jquery_ujs 
//= require turbolinks
//= require rails.validations
//= require that_file_from_vendor_assets
//= require that_other_file_from_vendor_assets
//= require_tree .

where that_file_from_vendor_assets is the vendor JavaScript that you need to be loaded up before it gets to your "app/assets/javascript" files.

Just change

//=require_tree .

like this:

//= require_self

Then files will be imported in the order of you put them to your application.js file.

And don't forget <%= javascript_include_tag "application"%> in your layout file.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM