1

我们有一个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 文件时,我都必须在此处手动添加一个条目。

如何在无需手动维护此文件的情况下将它们全部包含在内?

4

1 回答 1

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 文件。

于 2012-09-17T18:08:14.093 回答