我正在使用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'
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top