2011-09-18 10 views
13

Bir AJAX isteğini işleyen bir eylemim var. Geliştirme makinemde, javascript yanıtı oluşturmak için create.js.coffee adlı bir şablon başarıyla işleniyor. Ancak, Heroku'ya dağıttığımda, uygulama şablonu bulamadığından şikayet ediyor.Heroku'nun CoffeeScript'e dayalı şablonları işlemesi için ne yapılandırılmalı?

ActionView::MissingTemplate (Missing template /expenses/create with {:handlers=>[:erb, :builder], :formats=>[:js, :html], :locale=>[:en, :en]}. Searched in: 
* "/app/app/views" 
* "/app" 
* "/" 
): 

Kahve işleyicisi preprocess * .js.coffee şablona olmadığını açık.

Herhangi biri, Heroku'nun bu şablonları tanıması ve işleyebilmesi için nasıl yapılandırabileceğimi önerebilir mi?

Not: Heroku, varlık boru hattında bulunan CoffeeScript dosyalarını başarıyla önişlemiyor.

+0

Buna bir cevap buldunuz mu? Heroku'da aynı sorunu yaşıyorum. Gemfile ekledim: "gem" coffeebeans ",: git => git: //github.com/marcelloma/coffeebeans.git",: ref => "7b106" ' Bu bir çekme isteği Yine de yerel olarak çalıştı ama görünümlerinde .js.coffee izin vermek için coffeebeans gem için. – trace

cevap

36

Partiye biraz geç kaldım, ama işte benim çözümüm Github.


Sadece benim create.js.coffee dosya development çalışıyordu bir sorunla karşılaştık ama (Heroku üzerine) production çalışmayı durdurdu.

group :assets do 
    gem "sass-rails", "~> 3.1.0" 
    gem "coffee-rails", "~> 3.1.0" 
    gem "uglifier" 
    gem "compass", "~> 0.12.alpha" 
end 

# asset templates 
gem "jquery-rails" 
gem "haml" 

Ben :assets grubun coffee-rails dışında hareket Sadece sonra:

2011-10-14T08:26:29+00:00 app[web.1]: ActionView::MissingTemplate (Missing template page_blocks/create, application/create with {:handlers=>[:erb, :builder, :haml], :formats=>[:html, :text, :js, :css, :ics, :csv, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json], :locale=>[:nl, :nl]}. Searched in: 
2011-10-14T08:26:29+00:00 app[web.1]: * "/app/app/views" 
2011-10-14T08:26:29+00:00 app[web.1]:): 

Bu benim Gemfile ait (önemli) bir parçasıdır: günlükleri Raylar bile kahve işleyici arayan olmadığını gösteriyor şeyler çalışmaya başladı. Belki de bunu bir şekilde açıklığa kavuşturmak iyi bir fikir olabilir ve belki de coffee-rails eklentisi ile assets grubunun dışında yer alan Raylar bile.

+0

Bu tamamen benim için çalıştı, tam olarak neden olmasa da tam olarak emin. –

+0

Teşekkür ederim Jean, bu gerçekten yararlı oldu! – Abramodj

+1

Bu sayfadaki her şeyi kabul et, bu beni deli ediyordu! – webdesserts

2

Hatta daha sonra partiye değilim, ama sadece aynı problem vardı ve basit bir açıklaması var: Gemfile içinde taşlar

"varlıklar" grubu sadece gelişme içindir. Heroku, bu mücevherleri üretimde yüklemez çünkü Varlık Boru Hattı için kendi istikrarlı sürümlerine dayanır.

Varlık boru hattı ile ilgili gibi görünen ancak aslında standart bir boru hattına ait olmayan özel bir gem kullanıyorsanız (örneğin "kahve çekirdekleri" gem), bu gemiyi "Öğeler" grubunun dışında tutmalısınız .

Bu teoriyi test ettim ve benim için çalıştı.

0

Heroku sedirinde, bu sayfanın en son bölümüne göre yolunuza çöp kutusu eklemeniz gerekir Rails 3.1+ Asset Pipeline on Heroku Cedar. "Öğeleri çalışma zamanında derlemeniz gerekiyorsa, JavaScript çalışma zamanına erişmek için PATH'nize bin eklemeniz gerekir."

+1

Bu yeteneğe de ihtiyacım var, ancak Heroku yapılandırmamı işaretlediğimde, PATH şu anda başvuruda bulunduğunuz belgede olduğu gibi birden çok değere sahip olmak yerine hiç ayarlanmadı. Bunun normal olup olmadığını biliyor musunuz ve üzerinde/bin bulunan bir PATH ayarı hile yapacak mı? –