I have organized my javascript files in a couple of directories and I have found the following strange behavior. Given the following tree:
+ app
+ assets
+ javascripts
+ common
+ public
+ common
+ home
- home.js
home.js
looks like this:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_directory ../../jquery_plugins
//= require_directory ../../common
//= require_directory ../common
//= require_self
Now the trick lies in the jquery_plugins
directory. I placed this inside vendor/assets/javascripts
(which is included in the asset load path, when I check Rails.application.config.assets.paths
). When I do this I get the error: require_tree argument must be a directory
. When I move that directory to app/assets/javascripts
then everything works.
Does anybody have a clue as to what I'm doing wrong? Or is this a bug?
You could add a manifest file to the directory you are trying to serve with something like
vendor/assets/javascripts/jquery_plugins/manifest.js
//= require_directory .
and require it in your app/assets/javascripts/application.js
via
//= require jquery_plugins/manifest
Thanks to @LeEnno for this
You can actually put all your single library related files in a folder named after the library for example vendor/assets/javascripts/bootstrap
and in that same folder add an index.js
which will act as your manifest and Rails will automatically pick it up
if in your
app/assets/javascripts/application.js
you add the line
//= require bootstrap
SO EASY!!!
Link to Rails Asset Pipeline Guide
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With