2012-10-14 2 views
1

사이트를 배포 할 때는 완전한 초보자입니다.이 질문의 애매 모호함을 변명하십시오.레일 (레일 노드)의 루비 제작 서버 디버그

필자는 라이온 베이트 에피소드 # 337 (https://github.com/railscasts/337-capistrano-recipes)을 따라 레일 애플리케이션을 배포했습니다. 우분투 10.04 lts, ​​nginx, unicorn 및 capistrano를 postgres와 함께 사용하고 있습니다.

캡 배포 후 : 차갑게 모든 것이 정상적으로 진행되는 것 같습니다.

하지만 내 IP를 쳤을 때, 내 레일 응용 프로그램은 나에게이 오류 제공 :

We're sorry, but something went wrong. 

나는 그것이 매우 도움이 오류 메시지가 아닙니다 알고 있습니다. postgresql을 사용하여 heroku에 배포 할 때 전에 본 적이 있으므로 데이터베이스와 관련이 있다고 가정합니다.

리니어 서버의 로그 파일을 확인하고이를 디버깅하는 방법에 대해 자세히 알지 못합니다.

모든 안내를 크게 환영합니다.

감사합니다.

답변

1

OpenShift에 Rails 앱을 배치하는 것과 비슷한 문제가있었습니다.

내 경우에는 자산이 누락되어 오류가 발생했으며 매니페스트 파일에는 정의되지 않았습니다.

개 세트의 자산 인을 사용해야합니다. 나는 파기를 시작했는데, Rails가 누락되었거나 컴파일되지 않았거나 매니페스트에 포함되어 있지 않기 때문에 (이름을 통해 직접 또는 간접적으로) Rails가 찾고있는 자산을 찾을 수 없을 때 생성된다는 것을 발견했다. require_tree).

첫 번째 사례가 분명합니다. 앱의 코드에 포함 시키거나 장비에 추가해야합니다. 두 번째 케이스는 OpenShift가 당신을 위해 그렇게하기 때문에 문제가되지 않습니다. 그러나 문제가있는 경우 포럼에서 자산을 컴파일하지 않는 문제를 검색하십시오.

세 번째 경우에는 두 가지 솔루션이 있습니다. 올바른 것이고 빠른 것이 있습니다. 두 번째 것에 대한 전문가의 의견이 필요합니다. 여기에는 다음과 같습니다. 환경 application.rb에서 사전 컴파일하려면 항목 목록에 자산 (일반적으로 스타일 시트 및/또는 타사 도구)을 추가해야합니다.

config.assets.precompile += ['960sm.css'] 

또는 모든 자산에 대해 보편적으로 작동합니다 내가 찾은 빠른 방법 : 이 같은 사실에 config/environments/production.rb

config.assets.compile = true 

설정하여의 설정은이 문제를 해결해야한다 .

이 정보가 도움이되기를 바랍니다. 나는 같은 문제에 2 주 파고 들었다.

+1

비슷한 문제. 도와 줘서 고마워! config.assets.compile =을 false에서 true로 변경해야했습니다. – Benamir

+0

하지만 지금 내 twitterbootstrap 파일은 컴파일되지 않았거나 무언가가 아닙니다. 부트 스트랩이 프로덕션에서 작동하지 않습니다. 문제를 해결하는 방법에 대한 아이디어가 있으시면 도움을 많이 받으실 수 있습니다. – Benamir

+0

오오 !! 당신은'덜 레일'을 사용하고 있습니다. 그건 좀 까다 롭습니다. 그 문제에 대한 세부 사항을 알려 주실 수 있습니까? –

2

ssh를 사용하여 리니어 서버에 로그인하고 로그 파일을 직접 확인해야합니다.

Railscast에서 config/deploy.rb 파일에서이 줄 :

set :deploy_to, "/home/#{user}/apps/#{application}" 

앱이 배포 된 linode 서버에있는 디렉토리를 알려줍니다. 이 디렉토리에서 shared/log 디렉토리를 볼 수 있습니다. 로그가 있어야합니다.

+1

도움 주셔서 감사합니다. 이제 디버깅하는 방법을 알고 있습니다. 나는 당신의 길과 위의 길을 따라 갔고 그들은 둘 다 대답으로 인도했습니다. – Benamir

+1

도움이 되니 기쁩니다! – dpassage