2013-01-07 42 views
1

我使用以下代碼在我的rails應用程序的特定頁面上包含自定義css和javscript。如何預編譯頁面特定資產

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

它可以在本地主機(提供我包含在應用程序佈局產量<%= 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應用程序打破(我' m猜)

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

試試:'<(%)=收率(:報頭)如果content_for?(:報頭)%>' – sailor

+0

content_for(content_for?)不能解決問題後添加問號... – Leahcim

+0

您是否已將自定義CSS和文件添加到要預編譯的文件列表中?見這裏http://stackoverflow.com/questions/8272325/sprockets-and-rails-3-adding-a-new-precompiled-js-file – Edward

回答

2

我不得不預編譯頁面特定資產配置/環境/ production.rb

config.assets.precompile += [ "pagespecific.js", "pagespecific.css"]