我想在代码中保持DRY,这样当我的javascript文件与控制器或/和方法匹配并且.js
存在时,我想自动加载它。我将此添加到我的布局中
= javascript_include_tag params[:controller] if ::Rails.application.assets.find_asset("#{params[:controller]}.js")
= javascript_include_tag "#{params[:controller]}/#{params[:action]}" if ::Rails.application.assets.find_asset("#{params[:controller]}/#{params[:action]}.js")
所以现在当我添加javascripts/my_controller/my_method.js
时,它会自动加载它,这很好。
遗憾的是,我必须添加另一行来预编译资产,否则会抛出一个错误(它说我必须预编译.js
文件),而我没有找到任何解决方法。
Rails.application.config.assets.precompile += %w( orders/checkout.js )
有人有解决方案可以避免在这种配置中手动添加元素吗?
注意:我已经尝试使用require_tree .
,它只是加载每个页面上的所有文件,在我的情况下不起作用
您可以使用通配符来允许预编译视图中包含的所有JS文件:
config.assets.precompile << '*.js'