2011-11-23 32 views
33

Cập nhậtray 3.1 triển khai trên Heroku .css không biên dịch sẵn lỗi

tôi đã nhận lỗi này bởi vì tôi đã có một public.css và public.js tập tin mà không được biên soạn với phần còn lại của .css và .js. Giải pháp là thêm dòng này vào tệp 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 ) 

Như bạn thấy từ nhận xét, tất cả ứng dụng tên tệp đã được thêm. Vì vậy, tôi chỉ cần thêm những cái mà không được gọi là ứng dụng.

Hy vọng nó sẽ giúp ai đó!

gốc câu hỏi

Tôi có tập tin đá quý này

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 

khi tôi triển khai với "git push Heroku bậc thầy" Tôi thấy điều này

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 

nhưng trong các bản ghi Heroku tôi nhận được ActionView :: Mẫu :: Lỗi này. css không biên dịch sẵn Strange .. Tôi thougt nó đang nhìn vào những phản hồi triển khai

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' 

bất kỳ của bạn có thể thấy những gì tôi đang làm sai?

+2

thêm dòng 'config.assets.precompile + =% w (public.js public.css) ' để production.rb sau đó chạy 'bó exec rake tài sản: precompile' theo sau là một đẩy và heroku khởi động lại đã làm các trick cho tôi. cảm ơn. – scald

Trả lời

18
  • Run bundle exec rake assets:precompile trên mã địa phương của bạn
  • Cam kết những thay đổi và triển khai đến Heroku

Nếu đây là lần đầu tiên bạn triển khai ứng dụng của bạn để Heroku, bạn có thể gặp nhiều lỗi sau này được giải quyết. Hãy cho tôi biết những gì sẽ xảy ra.

7

Trên thực tế, bạn cần phải chạy tiền biên dịch phục vụ sản xuất bạn môi trường:

  • Run RAILS_ENV=production bundle exec rake assets:precompile trên địa phương
  • Cam kết và triển khai đến Heroku

rộng rãi hơn, Heroku docs mô tả ba lựa chọn để biên soạn tài sản cho Rails 3.1+ trên Cedar:

  1. Compile tại địa phương (được nêu trong câu trả lời này)
  2. Compile trong sên biên soạn
  3. Compile trong thời gian chạy
Các vấn đề liên quan