我有一个本地宝石。并且有一个js文件:
app/assets/javascripts/autocomplete_location/location_autocomplete.js
现在我想在我的rails项目中使用这个gem。我能够使用它的其他ruby文件,但不能包含上面的js文件。我已经尝试将engine.rb文件放入我的gem中。仍然没有运气。
我试过
//= require autocomplete_locations/location_autocomplete
在我的项目的application.js文件中。但是,当我启动服务器并打开任何页面时,它会抛出此错误:
Sprockets::FileNotFound > couldn't find file 'autocomplete_locations/location_autocomplete' with type 'application/javascript'
答案 0 :(得分:1)
//= require autocomplete_locations/location_autocomplete
仍然与'autocomplete_locations/location_autocomplete
不同。所需的文件夹是autocomplete_locations
,包含该文件的文件夹的名称是autocomplete_location
。我之前的评论中没有提到这一点。如果这不能解决问题。尝试要求并测试不同的javascript文件,以确保它不是资产管道的问题。
答案 1 :(得分:1)
感谢您的建议,经过多次点击和试用后,我通过在lib / autocomplete_locations.rb中添加以下代码解决了这个问题:
class Engine < ::Rails::Engine
environment = Sprockets::Environment.new
environment.append_path '../vendor/assets/javascripts'
end
现在我可以在rails项目中要求我的资产。