문제

나는 sinatra와 함께 보석없이 Haml을 작동 시키려고 노력합니다 (Heroku는 내가 아는 한 보석 설치를 허용하지 않습니다).

내가 지금까지 한 일 :

  • 내 프로젝트 내에서 Haml Git Repo를 복제하십시오

  • 추가 : 'haml/lib/haml.rb'요구 사항 내 시나트라 메인 파일

다음 작품 :

get '/test' do
  Haml::Engine.new('%p test').render
end

그러나 다음은 다음과 같습니다.

get '/test2' do
  haml :my_template
end

오류가 발생합니다.

nomethoderror- 정의되지 않은 방법 each' for nil:NilClass (haml):20:in세우다'

./haml/lib/haml/engine.rb:152:in`` render ''

./haml/lib/haml/engine.rb:152:in`instance_eval '

./haml/lib/haml/engine.rb:152:in`` 렌더 ''...

필요한 다른 파일이 있습니까? 어떤 아이디어?

도움이 되었습니까?

해결책

Heroku는 a를 만들어 보석 설치를 지원합니다 .gems 프로젝트의 루트 디렉토리에 파일을 파일하고 git에 추가하십시오. 다음으로 밀기에는 필요한 보석이 설치됩니다. Haml을 설치하려면 파일 에이 줄이 포함됩니다.

haml --version '>= 2.2.0'

자세한 내용은 여기를 참조하십시오. http://docs.heroku.com/gems

다른 팁

가장 명백한 두 가지 가능성 (확률 순서) :

  1. HAML 파일의 일부 루비 코드에는 오류가 있습니다. Sinatra 이외의 동일한 코드를 시도 할 수 있다면 괜찮아집니다.
  2. my_template.haml 파일은 없거나 잘못 명명되었습니다.

Stuff MC가 지적한 바와 같이, Petergassner의 답변에 따라 지금이 작업을 수행하는 올바른 방법은 앱의 보석을 사용하는 것입니다. 그 보석에서 당신은 할 것입니다

gem "haml", ">= 2.2.0"

Heroku는 Gemfile에 언급 된 보석을 설치하도록 앱을 푸시 할 때를 알고 있습니다.

사용하려는 경우에 유의하십시오 sass 만큼 잘 haml, 당신은 그 설정을 얻기 위해 두 개의 후프를 뛰어 넘어야 할 수도 있습니다. 길 haml 전통적으로 편집 된 글쓰기와 관련된 작업에 사용되었습니다 css 디스크에 대한 파일은 Heroku의 읽기 전용 파일 시스템에서 문제입니다. 누군가는 결국이 상황을 해결하기 위해 플러그인/보석을 썼습니다 (Sass-on-Herku 또는 일부).

현재 haml-rails Gem은 자산 파이프 라인을 사용하여이를 처리하는 것처럼 보이지만 Sinatra를 사용하는 경우에는 효과가 없습니다. 따라서 그 보석 중 하나가 여전히 작동 중인지 확인하고 싶거나 Heroku가 현재 간부하고 있습니다. 이 기사는 또한 철도에 따라 다르지만 너무 어려움없이 Sinatra를 위해 적절하게 일할 수 있어야합니다. (기본적으로, 여기서 요점을 요약하기 위해 Heroku는 이제 TMP 디렉토리에 쓰기를 지원합니다. 따라서 Sass Gem과 Sinatra 앱을 모두 구성하여 TMP 위치를 사용하여 TMP 위치를 모두 사용하여 양호해야합니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top