【问题标题】:Rails + Heroku not finding controller specific assetsRails + Heroku 找不到控制器特定的资产
【发布时间】:2013-12-04 08:04:06
【问题描述】:

我正在使用 Heroku 运行 Rails 应用程序:grafly.herokuapp.com。但是,我的控制器的 CSS 和 JS 没有被找到,而其他 CSS 和 JS(预编译到应用程序中)正在被找到。这只发生在 Heroku 上。本地还好。这是什么原因造成的?

我使用特定于控制器的 JS 和 CSS。这是我的视图/布局/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>

【问题讨论】:

  • 我猜你没有预编译这些资产,所以它们不存在。还有,为什么大家这么喜欢控制器专用的 CSS 和 JS?

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


【解决方案1】:

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

Rails 指南中有一个部分位于http://guides.rubyonrails.org/asset_pipeline.html#controller-specific-assets

你可能错过了

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多