2011-09-18 2 views
13

AJAX 요청을 처리하는 만들기 작업이 있습니다. 내 개발 컴퓨터에서 create.js.coffee라는 템플릿이 성공적으로 처리되어 자바 스크립트 응답을 생성합니다. 그러나, 내가 Heroku에 배포 할 때, 응용 프로그램은 템플릿을 찾을 수 없다는 불평을합니다.CoffeeScript 기반 템플리트를 처리하기 위해 Heroku가 구성해야하는 것은 무엇입니까?

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

그것은 커피 처리기 전처리 *의 .js.coffee 템플릿이없는 것이 분명하다.

이러한 템플릿을 인식하고 처리하도록 Heroku를 구성하는 방법을 제안 할 수 있습니까?

참고 : Heroku는 자산 파이프 라인에있는 CoffeeScript 파일을 성공적으로 사전 처리합니다.

+0

답변을 얻었습니까? Heroku에서 같은 문제가 있습니다. 내 gemfile에 다음을 추가하려고 시도했다 : 'gem "coffeebeans", : git => git : //github.com/marcelloma/coffeebeans.git ", : ref =>"7b106 "' 그건 풀 요청이다. 커피 쥬얼리에 .js.coffee를 허용하고, 다시 로컬로는 Heroku가 아니 었습니다. – trace

답변

36

나는 파티에 좀 늦었지만, 여기에 내 솔루션은 Github에 게시되어 있습니다.


난 그냥 내 create.js.coffee 파일이 development에서 일하는 문제로 실행하지만 (Heroku가에) production에서 작동이 중지.

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" 

나는 :assets 그룹의 coffee-rails 외부 이동 후에 만 ​​:

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]:): 

이 내 Gemfile의 (중요한) 부분은 다음과 같습니다 로그는 레일 심지어 커피 처리기를 찾고되지 않는다는 것을 보여 , 일이 시작되었습니다. 아마 readme에서 이것을 분명히하고, assets 그룹 외부에 coffee-rails 플러그인이있는 레일을 배송하는 것이 좋습니다.

+0

이것은 완벽하게 작동했는데, 왜 그런 일이 일어나는지 정확히 알지 못했습니다. –

+0

Jean에게 감사드립니다. – Abramodj

+1

I want to 이 페이지의 모든 것을 upvote. 이것은 나를 미치게했다! – webdesserts

2

은 난 나중에 파티에 해요,하지만 난 그냥 같은 문제를 가지고 간단한 설명이있다 다음 Gemfile에 보석의

은 "자산"그룹은 개발을위한 것입니다. Heroku는 자산 파이프 라인 용 안정 버전을 사용하기 때문에이 보석을 생산에로드하지 않습니다.

자산 파이프 라인과 관련이 있지만 표준 파이프 라인에 실제로 속하지 않는 특수 보석 (예 : "coffeebeans"보석)을 사용하는 경우 보석을 "자산"그룹 외부에 보관해야합니다 .

방금이 이론을 테스트 한 결과 저에게 효과적이었습니다.

0

heroku 시더에서이 페이지의 마지막 섹션 Rails 3.1+ Asset Pipeline on Heroku Cedar에 따라 경로에 bin을 추가해야합니다. "런타임에 자산을 컴파일해야하는 경우 PATH에 bin을 추가하여 JavaScript 런타임에 액세스해야합니다."

+1

필자도이 기능을 필요로하지만 Heroku 구성을 검사했을 때 PATH는 참조 된 설명서 에서처럼 여러 값을 갖는 것이 아니라 현재 설정되지 않았습니다. 그게 정상인지,/bin을 가지고있는 PATH를 설정하면 그 트릭을 할 수 있는지 아십니까? –

관련 문제