Heroku

2013-02-22 30 views
5

için dağıtım yaparken farklı sayfa görünürlüğü Bazı Kendo UI parçacıklarını kullanmaya çalışıyorum ve geliştirmede iyi çalışıyorlar. Ancak, uygulamamı Heroku'ya dağıttığımda, görünümü dramatik olarak değişiyor.Heroku

TreeView widget'ına sahip bir örnek sayfa yazdım. Geliştirme aşamasında nasıl oluşturduğunu budur:

tree view in development

Ve Heroku üretimde

:

tree view in production

o görülebileceği gibi

, liste belirteçleri (? ağaç belirteçleri) eksik.

Sorunun en iyi gelişiminde rake assets:precompile sonları şeyler yapıyor beri, varlık boru hattı ile ilgili bir şey yoktur şüpheli (ve rake assets:clean geri döner). Ama bu beni şaşırtıyor çünkü benim Bootstrap başlığım hem geliştirme hem de üretimde gayet iyi çalışıyor (ancak Heroku kayıtlarında ActionController::RoutingError (No route matches [GET] "/assets/Bootstrap/loading.gif") hatası var).

Gemfile:

source 'https://rubygems.org' 

gem 'rails' 
gem "ancestry" 
gem "bootstrap-sass" 
gem "will_paginate" 
gem "bootstrap-will_paginate" 
gem "truncate_html" 
gem "slim-rails" 
gem "kendoui-rails" 

group :development, :test do 
    gem 'sqlite3' 
    gem 'rspec-rails' 
    gem "minitest" 

    platform :ruby do 
    gem 'therubyracer' 
    end 
end 

group :test do 
    gem 'capybara' 
end 

group :development do 
    gem "nifty-generators" 
    gem "annotate" 
end 

group :production do 
    gem 'pg' 
end 

group :assets do 
    gem 'sass-rails', '~> 3.2.3' 
    gem 'coffee-rails', '~> 3.2.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails', '~> 2.1.3' 

gem 'bcrypt-ruby', require: 'bcrypt' 

development.rb:

config.cache_classes = false 
config.whiny_nils = true 
config.consider_all_requests_local  = true 
config.action_controller.perform_caching = false 
config.action_mailer.raise_delivery_errors = false 
config.active_support.deprecation = :log 
config.action_dispatch.best_standards_support = :builtin 
config.active_record.mass_assignment_sanitizer = :strict 
config.active_record.auto_explain_threshold_in_seconds = 0.5 
config.assets.compress = false 
config.assets.debug = true 

production.rb:

config.cache_classes = true 
config.consider_all_requests_local  = false 
config.action_controller.perform_caching = true 
config.serve_static_assets = false 
config.assets.compress = true 
config.assets.compile = false 
config.assets.digest = true 
config.i18n.fallbacks = true 
config.active_support.deprecation = :notify 

mu Bunu nasıl düzelteceğini bilen var mı? Herhangi bir yardım takdir edilir.


Güncelleme 1.

Yorumlarınız için hepinize teşekkür ederiz, ek bilgi.

Heroku günlüğü: benim apaçık CSS dosyasında

2013-02-23T02:37:50+00:00 app[web.1]: Started GET "/environment_test/index" for 193.169.36.82 at 2013-02-23 02:37:50 +0000 
2013-02-23T02:37:50+00:00 app[web.1]: Processing by EnvironmentTestController#index as HTML 
2013-02-23T02:37:50+00:00 app[web.1]: Rendered environment_test/index.html.slim within layouts/application (23.3ms) 
2013-02-23T02:37:50+00:00 app[web.1]: Rendered layouts/_header.slim (57.2ms) 
2013-02-23T02:37:50+00:00 app[web.1]: Completed 200 OK in 159ms (Views: 158.7ms | ActiveRecord: 0.0ms) 
2013-02-23T02:37:50+00:00 heroku[router]: at=info method=GET path=/environment_test/index host=biotriz.herokuapp.com fwd="193.169.36.82" dyno=web.1 queue=0 wait=2ms connect=20ms service=394ms status=200 bytes=1253 
2013-02-23T02:37:50+00:00 heroku[router]: at=info method=GET path=/assets/application-43a283ce09b9af356379df3e89b8b1cc.css host=biotriz.herokuapp.com fwd="193.169.36.82" dyno=web.1 queue=0 wait=0ms connect=1ms service=10ms status=200 bytes=186674 
2013-02-23T02:37:51+00:00 heroku[router]: at=info method=GET path=/assets/application-8ac08b06d5d57f91da7af9d1e1c345c0.js host=biotriz.herokuapp.com fwd="193.169.36.82" dyno=web.1 queue=0 wait=7ms connect=20ms service=64ms status=200 bytes=648803 
2013-02-23T02:37:55+00:00 heroku[router]: at=info method=GET path=/favicon.ico host=biotriz.herokuapp.com fwd="193.169.36.82" dyno=web.1 queue=0 wait=0ms connect=0ms service=5ms status=200 bytes=0 
2013-02-23T02:37:55+00:00 app[web.1]: Started GET "/environment_test/index.json" for 193.169.36.82 at 2013-02-23 02:37:55 +0000 
2013-02-23T02:37:55+00:00 app[web.1]: Processing by EnvironmentTestController#index as JSON 
2013-02-23T02:37:55+00:00 heroku[router]: at=info method=GET path=/assets/glyphicons-halflings-white-6cccd17a7aed91dbc0157d343c68c0d9.png host=biotriz.herokuapp.com fwd="193.169.36.82" dyno=web.1 queue=0 wait=0ms connect=3ms service=66ms status=200 bytes=8777 
2013-02-23T02:37:55+00:00 app[web.1]: Completed 200 OK in 104ms (Views: 0.6ms | ActiveRecord: 31.9ms) 
2013-02-23T02:37:55+00:00 app[web.1]: Started GET "/assets/Bootstrap/loading.gif" for 193.169.36.82 at 2013-02-23 02:37:55 +0000 
2013-02-23T02:37:55+00:00 app[web.1]: 
2013-02-23T02:37:55+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/Bootstrap/loading.gif"): 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/rack/logger.rb:32:in `call_app' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/rack/logger.rb:16:in `block in call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.12/lib/active_support/tagged_logging.rb:22:in `tagged' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/rack/logger.rb:16:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/request_id.rb:22:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/methodoverride.rb:21:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/runtime.rb:17:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.12/lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
2013-02-23T02:37:55+00:00 heroku[router]: at=info method=GET path=/assets/Bootstrap/loading.gif host=biotriz.herokuapp.com fwd="193.169.36.82" dyno=web.1 queue=0 wait=1ms connect=12ms service=56ms status=404 bytes=728 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/lock.rb:15:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/static.rb:62:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:in `forward' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:245:in `fetch' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:185:in `lookup' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:66:in `call!' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/engine.rb:479:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/application.rb:223:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/content_length.rb:14:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/rack/log_tailer.rb:17:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/handler/webrick.rb:59:in `service' 
2013-02-23T02:37:55+00:00 app[web.1]: /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service' 
2013-02-23T02:37:55+00:00 app[web.1]: /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run' 
2013-02-23T02:37:55+00:00 app[web.1]: /usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread' 
2013-02-23T02:37:55+00:00 app[web.1]: 
2013-02-23T02:37:55+00:00 app[web.1]: 
2013-02-23T02:37:55+00:00 heroku[router]: at=info method=GET path=/environment_test/index.json host=biotriz.herokuapp.com fwd="193.169.36.82" dyno=web.1 queue=0 wait=6ms connect=16ms service=121ms status=200 bytes=390 
2013-02-23T02:37:55+00:00 app[web.1]: Started GET "/assets/Bootstrap/sprite.png" for 193.169.36.82 at 2013-02-23 02:37:55 +0000 
2013-02-23T02:37:55+00:00 app[web.1]: 
2013-02-23T02:37:55+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assets/Bootstrap/sprite.png"): 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/show_exceptions.rb:56:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/rack/logger.rb:32:in `call_app' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/rack/logger.rb:16:in `block in call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.12/lib/active_support/tagged_logging.rb:22:in `tagged' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/rack/logger.rb:16:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/request_id.rb:22:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/methodoverride.rb:21:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/runtime.rb:17:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.12/lib/active_support/cache/strategy/local_cache.rb:72:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/lock.rb:15:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/middleware/static.rb:62:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:136:in `forward' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:245:in `fetch' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:185:in `lookup' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:66:in `call!' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/engine.rb:479:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/application.rb:223:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/content_length.rb:14:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/railties-3.2.12/lib/rails/rack/log_tailer.rb:17:in `call' 
2013-02-23T02:37:55+00:00 app[web.1]: vendor/bundle/ruby/1.9.1/gems/rack-1.4.5/lib/rack/handler/webrick.rb:59:in `service' 
2013-02-23T02:37:55+00:00 app[web.1]: /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service' 
2013-02-23T02:37:55+00:00 app[web.1]: /usr/local/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run' 
2013-02-23T02:37:55+00:00 app[web.1]: /usr/local/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread' 
2013-02-23T02:37:55+00:00 app[web.1]: 
2013-02-23T02:37:55+00:00 app[web.1]: 
2013-02-23T02:37:55+00:00 heroku[router]: at=info method=GET path=/assets/Bootstrap/sprite.png host=biotriz.herokuapp.com fwd="193.169.36.82" dyno=web.1 queue=0 wait=0ms connect=1ms service=7ms status=404 bytes=728 
2013-02-23T02:38:19+00:00 app[web.1]: Started GET "/environment_test/index.json?id=33" for 193.169.36.82 at 2013-02-23 02:38:19 +0000 
2013-02-23T02:38:19+00:00 app[web.1]: Processing by EnvironmentTestController#index as JSON 
2013-02-23T02:38:19+00:00 app[web.1]: Parameters: {"id"=>"33"} 
2013-02-23T02:38:19+00:00 app[web.1]: Completed 200 OK in 17ms (Views: 0.4ms | ActiveRecord: 14.0ms) 
2013-02-23T02:38:19+00:00 heroku[router]: at=info method=GET path=/environment_test/index.json?id=33 host=biotriz.herokuapp.com fwd="193.169.36.82" dyno=web.1 queue=0 wait=0ms connect=1ms service=26ms status=200 bytes=266 

iki Kendo ilgili CSS-files dahildir (application.css): kendo.common.min.css (ortak kodu içeren, unminified version) ve kendo.bootstrap.min.css (temasa özgü kod, unminified version).

vendor 
└── assets 
    ├── javascripts 
    │   └── ... 
    └── stylesheets 
     └── kendo 
      ├── Bootstrap 
      │ ├── editor.png 
      │   ├── imagebrowser.png 
      │   ├── loading.gif 
      │   ├── loading-image.gif 
      │   ├── slider-h.gif 
      │   ├── slider-v.gif 
      │   └── sprite.png 
      ├── ... # Some other theme-specific dirs 
      ├── kendo.bootstrap.min.css 
      ├── kendo.common.min.css 
      └── ... # Some other theme-specific CSS's 

kendo.bootstrap.min.css olan görüntülerde (url('Bootstrap/sprite.png') ve url('Bootstrap/loading.gif')) atıfta kodu içeren dosya: Bu arada

, kendoui-rails mücevher vendor dizin yapısı aşağıdaki gibidir üretimde görüntülenmez (ancak Bootstrap dizininde bulunurlar), bu yüzden Chris Rueber'ın doğru olduğunu düşünüyorum. Peki bunu nasıl düzeltebilirim?

+1

Lütfen önkoşul hatalarını giderebilmemiz için heroku günlüklerinizi gönderin. – Jesper

+3

Bir varlık boru hattı olayı olduğunu değerlendirmenize katılıyorum. Görüntüler CSS'de nasıl adlandırılır (ok/göstergeler)? İlk bakışta, CSS'nin, referans boru hattında olduğu zaman işe yaramayan bir ../images/arrow-left.jpg referansı ile atıfta bulması gereken bir şey gibi görünüyor. –

+0

@Jesper, günlüğü ekledim. – nameless

cevap

1

Aslında sorun, KendoUI-Rails github deposunun the issues numaralı sürümünde açıklanmıştır. Css dosyalarını birleştirdikten sonra varlıkları önceden derledikten sonra görünmektedir. Bu şekilde .png dosyasının doğru yolu kaybolur. (Lütfen development.rb olarak) böyle kapalı hata ayıklama ayarlayarak üretimde hata üretebilir:

config.assets.debug = false 

olası bir geçici çözüm .css dosya şu şekilde, varlık-boru hattından ayrı dahil etmektir:

<link rel="stylesheet" href="../assets/kendo/kendo.bootstrap.min.css"> 
ama, @fadzlan açıklar bilet yazarı olarak, bu application server yerine web server tarafından hizmet css varlığa yol açacaktır.

+0

Teşekkürler. Aslında sorun izleyiciyi kendim kontrol etmeliydim. – nameless