我们有一个conf/environments/production.rb
文件,单独列出所有js文件,例如
conf.assets.precompile += %w (highcharts.js)
conf.assets.precompile += %w (schedule.js)
conf.assets.precompile += %w (new_event.js)
conf.assets.precompile += %w (old_event.js)
conf.assets.precompile += %w (event_controls.js)
conf.assets.precompile += %w (other_stuff.js)
...
每次我有一个新的js文件时,我都必须在这里手动添加一个条目。
如何在不必手动维护此文件的情况下将它们全部包含在内?
答案 0 :(得分:1)
从技术上讲,你是从错误的方向接近问题。您的config.assets.precompile应该只引用一些中央清单类型文件(例如,application.js),然后清单文件会根据需要引用js文件。
例如,您的application.js可能如下所示:
//= require highcharts.js
//= require schedule.js
//= require new_event.js
//= require old_event.js
//= require event_controls.js
//= require other_stuff.js
如此设置,所有列出的文件都将包含在application.js的预编译版本中,而application.js是您需要在布局中包含的唯一文件。
要自动添加新文件,您可以使用
//= require_tree .
将包含与application.js在同一目录中的每个.js文件,以及所有子目录中的文件。
实际上,一个包含应用程序中每个js文件的application.js文件有点多。您可以将文件分解为一组中央清单。例如,charts.js,events.js,misc.js.将这些文件添加到config.assets.precompile中。然后,当需要新文件时,更新清单文件而不是production.rb文件。