Rails + Heroku找不到控制器特定资产

时间:2013-12-04 08:04:07

标签: ruby-on-rails heroku ruby-on-rails-4 asset-pipeline

我正在使用Heroku运行Rails应用程序:grafly.herokuapp.com。但是,我找不到控制器的CSS和JS,而其他CSS和JS(预编译到应用程序中)正在被发现。这只发生在Heroku上。当地很好。是什么导致这种情况?

我使用控制器特定的JS和CSS。这是我的views / layouts / application.html.erb

<head>
  <title>Grafly</title>
  <%= csrf_meta_tags %>
  <%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
  <%= stylesheet_link_tag params[:controller] %>
  <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
  <%= javascript_include_tag params[:controller] %>
</head>

1 个答案:

答案 0 :(得分:1)

如果您正在直接访问样式表和javascripts而不通过清单(应用程序),那么您需要将资产显式添加到预编译列表中。在开发模式下,Rails会在生产过程中动态编译您的资产,您将收到错误。

http://guides.rubyonrails.org/asset_pipeline.html#controller-specific-assets

的Rails指南中有一节

你可能错过了

config.assets.precompile += [ '<controllername.js>', '<controllername.css>']

有一个相对较新的宝石https://github.com/schneems/sprockets_better_errors会在开发过程中突出显示这些错误。