2011-11-23 80 views
33

更新軌3.1部署在Heroku上的.css不預編譯錯誤

,因爲我有沒有用的CSS中要編譯一個public.css和public.js文件我得到這個錯誤, .js文件。解決的辦法是當你從所有文件名的應用程序都已經添加的註釋看到這行添加到production.rb文件

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) 
config.assets.precompile += %w(public.js public.css ) 

。所以,我只需要添加那些不被稱爲應用程序的那些。

希望它可以幫助別人!

原來的問題

我有這樣的寶石文件

gem 'rails', '3.1.0' 

group :production do 
    gem 'pg' 
end 
group :development, :test do 
    gem 'sqlite3' 
end 

gem "heroku" 
gem 'thin' 
gem 'sass-rails', " ~> 3.1.0" 
gem 'coffee-rails', "~> 3.1.0" 
gem 'tabulous' 
gem 'json' 
gem "paperclip", "~> 2.4" 
gem "devise" 
gem "redcarpet" 

group :assets do 

    gem 'uglifier' 
end 

gem 'jquery-rails' 

gem "rspec-rails", :group => [:test, :development] 
group :test do 
end 

,當我用 「混帳推Heroku的大師,」 我看到這個

Preparing app for Rails asset pipeline 
     Running: rake assets:precompile 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets/admin 
     mkdir -p /tmp/build_2m34y4hj01m4o/public/assets/admin 
-----> Rails plugin injection 
     Injecting rails_log_stdout 
     Injecting rails3_serve_static_assets 
-----> Discovering process types 
     Procfile declares types  -> (none) 
     Default types for Ruby/Rails -> console, rake, web, worker 
-----> Compiled slug size is 31.2MB 
-----> Launching... done, v5 
     http://maktaba.herokuapp.com deployed to Heroku 

但在Heroku的日誌部署我得到這個ActionView :: Template :: Error。 CSS是沒有預編譯 奇怪..我thougt它一直在尋找在部署反饋

2011-11-23T22:59:48+00:00 app[web.1]: Rendered public/index.html.erb within layouts/first (0.7ms) 
2011-11-23T22:59:48+00:00 app[web.1]: Completed 500 Internal Server Error in 30ms 
2011-11-23T22:59:48+00:00 app[web.1]: 
2011-11-23T22:59:48+00:00 app[web.1]: ActionView::Template::Error (public/public.css isn't precompiled): 
2011-11-23T22:59:48+00:00 app[web.1]:  2: <html> 
2011-11-23T22:59:48+00:00 app[web.1]:  3: <head> 
2011-11-23T22:59:48+00:00 app[web.1]:  4: <title>Maktaba</title> 
2011-11-23T22:59:48+00:00 app[web.1]:  5: <%= stylesheet_link_tag "public/public" %> 
2011-11-23T22:59:48+00:00 app[web.1]:  6: <%= javascript_include_tag "public/public" %> 
2011-11-23T22:59:48+00:00 app[web.1]:  7: <%= csrf_meta_tags %> 
2011-11-23T22:59:48+00:00 app[web.1]:  8: <%= csrf_meta_tags %> 
2011-11-23T22:59:48+00:00 app[web.1]: app/views/public/index.html.erb:5:in `_app_views_public_index_html_erb___1726244208117637261_45234420' 
2011-11-23T22:59:48+00:00 app[web.1]: app/controllers/public_controller.rb:13:in `block (2 levels) in index' 
2011-11-23T22:59:48+00:00 app[web.1]: 
2011-11-23T22:59:48+00:00 app[web.1]: app/controllers/public_controller.rb:12:in `index' 

任何你能看到什麼,我做錯了什麼?在您的本地代碼

+2

期間蛞蝓彙編

  • 編譯編譯添加線'config.assets.precompile + =%(重量)(public.js public.css)'到production.rb,然後運行'bundle exec rake assets:precompile',然後進行push和heroku restart,這對我來說是個訣竅。謝謝。 – scald

  • 回答

    18
    • 運行bundle exec rake assets:precompile
    • 提交更改並部署到Heroku的

    如果這是您第一次部署你的應用程序的Heroku,您可以在此之後得到解決遇到更多的錯誤。讓我知道發生什麼事。

    7

    實際上,你需要爲你的生產運行預編譯環境:在本地

    • 運行RAILS_ENV=production bundle exec rake assets:precompile提交併部署到Heroku的

    更廣泛地說,Heroku docs描述三個選項用於Cedar上Rails 3.1+的資產編譯:

    1. 編譯局部(在此答案覆蓋)
    2. 期間運行時