如何包含我的javascript文件而不单独列出它们?

如何包含我的javascript文件而不单独列出它们?,javascript,ruby-on-rails,ruby-on-rails-3.2,assets,Javascript,Ruby On Rails,Ruby On Rails 3.2,Assets,我们有一个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.precom

我们有一个
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文件,我必须手动添加一个条目在这里


如何在不必手动维护此文件的情况下将它们全部包括在内?

从技术上讲,您处理问题的方向是错误的。您的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文件,以及所有子目录中的文件


实际上,一个application.js文件包含应用程序中的每个js文件有点太多了。您可以将文件分解为一组集中清单。例如,charts.js、events.js、misc.js。将这些文件添加到config.assets.precompile。然后,当需要一个新文件时,更新清单文件而不是production.rb文件。

从技术上讲,您是从错误的方向解决问题的。您的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文件,以及所有子目录中的文件


实际上,一个application.js文件包含应用程序中的每个js文件有点太多了。您可以将文件分解为一组集中清单。例如,charts.js、events.js、misc.js。将这些文件添加到config.assets.precompile。然后,当需要新文件时,更新清单文件,而不是production.rb文件。

这一点以前已经回答过:-虽然我同意你的标题更具描述性:)这一点以前已经回答过:-虽然我同意你的标题更具描述性:)手动添加js文件没有必要出错。因为您并不总是希望将所有js文件编译成一个。可能需要异步加载js文件。手动添加js文件没有必要出错。因为您并不总是希望将所有js文件编译成一个。可能需要异步加载js文件。