我使用以下代码在我的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 -%>
有谁能告诉我如何预编译那些特定于页面的资产?
答案 0 :(得分:2)
我必须在config / environments / production.rb
中预编译特定于页面的资产config.assets.precompile += [ "pagespecific.js", "pagespecific.css"]