题
我正在使用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 and Client.js)的事实有关。
那么,耙子资产:预编译不调整子目录的真实情况吗?
对于如何解决这个问题,有任何的建议吗。我更喜欢按照我的布置方式来使用文件,因为我有一堆JavaScript文件。
解决方案
Rails配置中有一个预编译数组,该数组设置了要进行预编译的文件。 application.js and application.css in 任何 目录。
您需要将文件添加到预编译阵列中:
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处,在管理Subdirs中管理JavaScript资产时,您可以命名每个subdir'index.js'的清单(与OP的'admin.js'和'client.js'),然后在配置/环境中命名。 /production.rb说:
config.assets.precompile += ['admin.js', 'client.js']
幕后的魔术将在管理副局中查看,并根据index.js中的规格进行编译,输出到admin.js;同样适用于客户。
然后,资产将通过:
javascript_include_tag 'admin'
不隶属于 StackOverflow