2012-06-28 2 views
5

bundle exec rake assets:precompile --trace을 실행할 때 프리 컴파일이 실패하지만 특정 이유가 없습니다. 레이크 에셋 사전 컴파일에 실패했습니다

내 출력이 페이스트 빈을 참조하십시오 http://pastebin.com/zggZyPyM

+0

자바 스크립트 런타임이 설치되어 있습니까? 이번 주에 리눅스 VM에서 자산을 미리 컴파일하려고 할 때 비슷한 오류가 발생했습니다. – Zajn

+1

zajn의 제안이 해결되지 않으면 syslog를 확인해야합니다. 애셋을 프리 컴파일하면 많은 양의 메모리 ("레일 s"이상)가 발생하며 OS가 그로 인해 프로세스를 중단시킬 수도 있습니다. – rubish

+0

아! 당신이 맞습니다 ... 기억이 부족합니다. – jasonlfunk

답변

13

프리 D 자산은 메모리를 많이합니다. ~ 400mb 내 경우에. 과도한 메모리 사용으로 인해 OS가 프로세스를 종료 할 수도 있습니다. 이 경우 syslog를 검사하여 확인할 수 있습니다.

상황을 피하기 위해 서버의 메모리를 늘릴 수 있습니다. 그렇게 할 수 없다면 로컬 시스템의 자산을 사전 처리 컴파일 한 후 repo에 커밋하고 서버에 배포하는 것이 좋습니다. 그렇게하면 서버에서 자산을 컴파일 할 필요가 없습니다. 그러나 이전에 생성 된 자산을 어떻게 든 삭제하고 프로세스를 자동화하는 방법을 조사하고 싶을 수도 있습니다.

2

,하지만 문제가 해결되었습니다. 먼저 node.js를 설치하려고 시도했습니다. 그리고 나서 다음 명령을 실행하십시오 bundle exec rake assets:precompile. 그때 만 나는 그 오류를 알아 차리지 못했습니다.

처음에는 메모리 부족으로 생각했습니다. 실행중인 거의 모든 응용 프로그램을 청소했지만 해결책을 찾을 수 없습니다. 또한 관리자로서 Ruby를 열었습니다. 그게 도움이 되었더라도 문제는 해결되었습니다.

+0

Windows에 Node.js를 설치하면이 문제가 해결되었습니다. 참고로,이 [page] (http://ajacevedo.com/2013/using-node-js-as-a-rails-javascript-runtime/)에는 Node.js를 사용하기위한 env 설정에 관한 좋은 정보가 있습니다 – konyak

+0

번들 exec 작업 추가 나를 위해 – Feuda

0

또한이 문제는 node.js JS 런타임을 사용하여 자산이 메모리 풋 프린트가 더 낮아서 미리 컴파일되므로 해결할 수 있습니다. Ubunutu 14.04의 경우 apt-get install nodejs을 실행하고 Gemfile의 기본 js 런타임을 gem 'node'으로 바꾸고 bundle을 실행하고 마지막으로 프리 컴파일을 다시 실행해야합니다. CSS 또는 js 변경 후이를 수행하는 것을 잊어 버릴 수 있으므로 오류가 발생하여 다른 위치에서 프리 컴파일하는 것에주의해야합니다.

관련 문제