2

我为我的 Rails 4 应用程序创建了一个仅打印的模板和样式表。一切都在我的本地环境中运行良好,但在生产中(在 Heroku 上)视图找不到样式表。我试过rake assets:precompile了,这似乎也没有帮助。另外——如果可能的话——我想从所有其他视图中排除这个样式表。有任何想法吗?

在我的采购请求控制器中

def print
    @purchase_request = PurchaseRequest.find(params[:id])
    render :layout => "print" 
end

/views/purchase_requests/print.html.erb

<p>
  Purchase Request
</p>
<table>
  # I have omitted the table data in the interest of brevity
</table>

/views/layouts/print.html.erb

<!DOCTYPE html>
<html>
<head>
  <title>Depot</title>
  <%= stylesheet_link_tag "print", media: :all %>
</head
<body>
<div id="wrapper">
<%= yield %>
</div>
</body>
</html>

/assets/stylesheets/print.css.scss (不是真的必要,但为了完整性)

table {
    border: 2px solid #000;
    width: 100%;
    border-collapse: collapse;

    td {
        border-top: 2px solid #000;
        padding: .5em;
    }

    td.key, td.signature_key {
        border-right: 2px solid #000;
        font-weight: bold;
    }

    td.signature_key, td.signature_blank {
        padding: 2em;
    }
}
p {
    width: 100%;
    text-align: center;
    font-size: 1.5em;
    font-weight: bold;
}
4

1 回答 1

3

确保您已遵循Rails 4 的 Heroku 指南

gem 'rails_12factor', group: :production仅当您添加到 Gemfile时,它​​才会预编译资产。

更新

您还需要将 print.css 包含到您的环境/production.rb文件中:

config.assets.precompile += %w( print.css)
于 2013-10-11T21:43:25.140 回答