我有一个小的 JS 文件 (common.js),其中包含一个函数。我在 application.js 中有以下几行:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require jquery.readyselector
//= require common
//= require_tree .
当我将其存储在
app/assets/javascripts
或
vendor/assets/javascripts
文件已正确加载,但是当我将其移动到时
lib/assets/javascripts
它停止工作,我收到错误:
Sprockets::FileNotFound
couldn't find file 'common'
(in C:/Sites/rails_studio/beatjoe/app/assets/javascripts/application.js:21)
尽管我的 Rails.application.config.assets.paths 是:
- C:/Sites/rails_studio/myappname/app/assets/images
- C:/Sites/rails_studio/myappname/app/assets/javascripts
- C:/Sites/rails_studio/myappname/app/assets/stylesheets
- C:/Sites/rails_studio/myappname/lib/assets/javascripts
- C:/Sites/rails_studio/myappname/vendor/assets/fonts
- C:/Sites/rails_studio/myappname/vendor/assets/images
- C:/Sites/rails_studio/myappname/vendor/assets/javascripts
- C:/Sites/rails_studio/myappname/vendor/assets/stylesheets
- C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/turbolinks-2.3.0/lib/assets/javascripts
- C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/jquery-rails-3.1.2/vendor/assets/javascripts
- C:/RailsInstaller/Ruby2.0.0/lib/ruby/gems/2.0.0/gems/coffee-rails-4.0.1/lib/assets/javascripts
根据文档,不仅应该包含 common.js,因为
//= require common
但也被捕获
//= require_tree .
我错过了什么?
最佳答案
当本地服务器运行时,我能够通过创建 lib/assets/javascript 目录来重现 Sprockets::FileNotFound
错误 。看来您需要重新启动服务器才能获取目录更改。
现在您的服务器已重新启动,您应该能够将文件添加到目录中,而无需重新启动服务器。
关于javascript - rails 4.1.1 : JS file in lib/assets/javascripts doesn't load,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28644840/