[ruby-on-rails] 레일이 생산 중인지 어떻게 알 수 있습니까?
내가 사용하는 script/server -e production
생산 모드에 레일을 시작합니다. 그것은했고 나는 오류가 없었습니다. 그러나 프로덕션 모드인지 어떻게 알 수 있습니까? 존재하지 않는 경로를 시도했는데 개발 중에했던 비슷한 오류 페이지가 나타납니다.
프로덕션 모델에서 내 / public 폴더에 404 오류 페이지가 표시되는 것으로 생각했습니다.
프로덕션 모드에서 시작되지 않았 음을 의미합니까?
당신의 도움을 주셔서 감사합니다.
답변
2 가지 쉬운 방법 :
tail -f log/production.log
앱을 실행 한 후 해당 로그를 채우는 항목이 있으면 프로덕션 모드에있는 것입니다.
두 번째 방법 :
보기 중 하나에서 (아마도 레이아웃이 좋을 것입니다)
<%= "Environment: #{RAILS_ENV}" %>
그리고 그것은 당신이 실행하고있는 환경을 보여줄 것입니다.
편집하다
요청이 “로컬”(즉, localhost 또는 127.0.0.1에서)로 간주되는 경우 모든 환경에서 실제 오류 페이지 대신 기본 예외 페이지가 표시됩니다. ApplicationController
def local_request?
false
end
이 방법은 api 의 문서에서 찾을 수 있습니다.
답변
Rails 3.1 이상인 경우 프로덕션 단계에서 Rails.env.production?
반환 true
됩니다.
Rails.env.production? #=> true
Rails.env.staging? #=> false
Rails.env.development? #=> false
답변
최신 Rails 버전 (3+)의 Rails.env
경우 환경을 다음으로 반환합니다 String
.
Rails.env #=> "production"
다음을 반환하는 각 환경에 대한 유용한 접근 자도 있습니다 Boolean
.
Rails.env.production? #=> true
Rails.env.staging? #=> false
Rails.env.development? #=> false
답변
명령 줄 유형에서 rails console
다음 Rails.env
.
답변
Rails 서버를 다시 시작하고 명령 줄에서 두 번째 줄을 읽는 것이 훨씬 쉽다는 것을 알았습니다.
rails s -e production
출력 실행 :
=> Booting Puma
=> Rails 4.2.4 application starting in `production` on http://localhost:3000
예에서 Webrick이 있었지만 일부 사람들은 서버 변경이 이름을 대체하는 방법을 이해하지 못했습니다. 명확성을 위해 업데이트되었습니다.
답변
명령 줄 대안
$ echo $ RAILS_ENV