如何预编译特定于页面的资产

时间:2013-01-07 17:28:43

标签: ruby-on-rails heroku

我使用以下代码在我的rails应用程序的特定页面上包含自定义css和javscript。

<% content_for :header do -%>
  <%= stylesheet_link_tag 'mycustompagecssfile' %>
  <%= javascript_include_tag 'customjavascriptfile' %>
<% end -%>

它适用于localhost(前提是我在应用程序布局中包含了yield <%= yield(:header) if content_for(:header) %>)但是当我将它推送到Heroku时它会破坏应用程序。

因为那些css和javascript文件只包含在一个页面上,所以我没有将它们包含在清单文件中(因为我不希望这些样式出现在任何地方),事实上,我删除了require tree代码

//= require jquery
//= require jquery_ujs
//= require common
//= require live-comment-preview
//= require_self

所以我想知道我是否预编译资产(我需要为heroku做),然后这些页面特定的css和javascript文件没有被预编译,这导致heroku应用程序崩溃(我猜)

heroku日志说有内部服务器错误

Processing by HomeController#index as HTML
2013-01-07T17:13:58+00:00 app[web.1]: Completed 500 Internal Server Error in 25ms

注意,我很确定这是导致问题的资产(而不是ruby代码),好像我在页面中这样做(即删除资产)没有问题

<% content_for :header do -%>

 <% end -%>

有谁能告诉我如何预编译那些特定于页面的资产?

1 个答案:

答案 0 :(得分:2)

我必须在config / environments / production.rb

中预编译特定于页面的资产
config.assets.precompile += [ "pagespecific.js", "pagespecific.css"]