子目录清单文件的资产预编译

我正在使用Rails 3.1,在资产下我有这样的文件:

assets javascripts admin admin.js a1.js client client.js c1.js 

admin.js看起来像这样

 // //= require jquery //= require jquery_ujs //= require a1 

client.js看起来像这样

 // //= require jquery //= require c1 

在开发模式下一切正常。 当我做资源:预编译然后我没有在公共/资产中看到任何javascript文件。 我确实看到了公共/资产中的所有样式表。

我认为这与在这种情况下清单文件(admin.js和client.js)在子目录中的事实有关。

那么rake资产是这样的:预编译不会查看子目录吗?

对于如何解决这个问题,有任何的建议吗。 我更喜欢按照我的方式设置文件,因为我有一堆javascript文件。

Rails配置中有一个预编译数组,用于设置要预编译的文件。 application.js和application.css在任何目录中。

您需要将文件添加到预编译数组:

 config.assets.precompile + = ['admin / admin.js','client / client.js']

它们应该通过以下方式访问:

 javascript_include_tag“admin / admin.js”

 javascript_include_tag“client / client.js”

在rails 3.2.6中,当管理子目录中的javascript资产时,你可以为每个子目录’index.js’命名清单(而不是OP的’admin.js’和’client.js’),然后在config / environments中/production.rb说:

 config.assets.precompile += ['admin.js', 'client.js'] 

幕后魔术将在admin子目录中查找并根据index.js中的规范进行编译,输出到admin.js; 同样为客户。

然后可通过以下方式访问资产:

 javascript_include_tag 'admin'