Ruby on rails 3.1 Rails 3.1资产和布局问题

Ruby on rails 3.1 Rails 3.1资产和布局问题,ruby-on-rails-3.1,asset-pipeline,sprockets,Ruby On Rails 3.1,Asset Pipeline,Sprockets,我有一个rails 3.1应用程序,按照标准实践,它在“/app/assets/stylesheets/application.css”中使用默认布局和css。这对于我的应用程序的主要部分的资产管道工作非常有效 但我在生成使用/app/views/layouts/showreports.html.erb布局的报告时使用了不同的“报告”布局,如下所示: <!DOCTYPE html> <html> <head> <%= stylesheet_link_

我有一个rails 3.1应用程序,按照标准实践,它在“/app/assets/stylesheets/application.css”中使用默认布局和css。这对于我的应用程序的主要部分的资产管道工作非常有效

但我在生成使用/app/views/layouts/showreports.html.erb布局的报告时使用了不同的“报告”布局,如下所示:

<!DOCTYPE html>
<html>
<head>
  <%= stylesheet_link_tag "showreports" %>
  <%= javascript_include_tag "showreports" %>
  <%= csrf_meta_tag %>
</head>
<body>
  <div id="mainarea" class="container">
    <div class="span-24 last">
      <%= yield %>
    </div>
  </div>
</body>

我使用的是
rake资产:clean;rake assets:precompile
预编译我的资产,并检查清单文件(/public/assets/manifest.yml)中的情况是否良好,我没有看到任何对showreports.css或showreports.js的引用

当我在开发模式下测试我的程序时,毫不奇怪,它找不到这些文件

我猜这是rails 3.1中的一个基本链轮问题,但我认为链轮足够聪明,可以解析资产的所有布局文件(除了默认的application.html.erb文件)

只是想知道这可能是一个bug,或者只是我对如何工作的误解

干杯

格雷格


更新

经过更多的修补,我正在回答我自己的问题,因为这对我来说是最有意义的

我做错的是使用名为“showreports.css”和“showreports.js”的文件作为清单文件

我的修复方法是创建
/app/assets/stylesheets/showreports
/app/assets/javascripts/showreports
,然后在各自的目录中将我的showreports.(css|js)重命名为application.(css|js)


这样做之后,
rake资产:precompile
很好地找到了它们,并将它们正确地添加到清单文件中。

这是一个误解。Rails资产管道只编译位于
Rails\u ROOT/app/Assets
中的文件,您必须直接引用它们。如果希望生成另一个文件,只需创建另一个清单文件,其内容与application.css/js类似。还要检查
require
指令,以避免将一个文件包含到另一个文件中。

这是一种误解。Rails资产管道只编译位于
Rails\u ROOT/app/Assets
中的文件,您必须直接引用它们。如果希望生成另一个文件,只需创建另一个清单文件,其内容与application.css/js类似。另外,请检查
require
指令,以避免将一个文件包含到另一个文件中。

根据,您还应添加以下内容:

config.assets.precompile += %w(showreports.css showreports.js)
在application.rb文件中

根据,还应添加以下内容:

config.assets.precompile += %w(showreports.css showreports.js)

转到application.rb文件

@Pablo_Castellazzi。谢谢,但是我有点不知道在哪里/如何做。我会修改config/application.rb中的某些内容以强制生成另一个清单文件,还是手动创建此清单文件?两者兼而有之。您需要创建文件并将其添加到
config/environments/production.rb
@Pablo_Castellazzi中的数组
config.assets.precompile
。谢谢,但是我有点不知道在哪里/如何做。我会修改config/application.rb中的某些内容以强制生成另一个清单文件,还是手动创建此清单文件?两者兼而有之。您需要创建文件并将其添加到
config/environments/production.rb
中的数组
config.assets.precompile