子目录清单文件的资产预编译
我正在使用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'