Rails Assets Pipeline从控制器和方法加载JavaScript
Rails Assets Pipeline load JavaScript from controllers and methods
我想在代码中保持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'
相关文章:
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 指令加载真的很长,检查加载时间的方法
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- 使用jquery.load('pageName')方法时,未从应用程序缓存加载Html页
- 在HTML/JavaScript中,有没有一种方法可以在图像开始加载时知道图像的最终布局尺寸
- jQuery加载方法字符集
- I'我用setTimeout加载脚本,你能找到一个更快的方法吗
- Jqgrid在第一个下拉索引chnage方法后未重新加载
- 只将JSON中的属性加载到现有的javascript对象中,而不破坏方法
- 在OneStepCheckout中为Magento调用重新加载支付方法
- 在不重新加载的情况下更改标头URL的任何方法
- html5:一个很好的加载方法
- Rails Assets Pipeline从控制器和方法加载JavaScript
- 我想在用Jquery.ajax方法加载数据后在Html中运行脚本
- 是否.load方法加载整个页面
- Javascript类方法加载json文件问题
- 我应该使用JQuery's的加载方法,因为谷歌看不到从该方法加载的内容
- ExtJs 错误:没有方法“加载数据”
- 无法从使用Webservice的方法加载剑道窗口上的下拉列表