2012-04-11 7 views
29

내 응용 프로그램이 개발 모드에서 정상적으로 실행됩니다.레일 3.1.3 : 프로덕션 환경에서 로컬로 실행하려고 할 때 자산 파이프 라인이 작동하지 않음

RAILS_ENV=production rails s을 사용하여 프로덕션 모드로 실행하면 내 .css 또는 .js 파일이로드되지 않습니다. (나는 RAILS_ENV=production bundle exec rake assets:precompile를 사용하여 사전 컴파일 자산을했다.)

에 WEBrick 로그를 보여줍니다

ActionController :: RoutingError (어떤 경로 일치 "/assets/application-a73ce43be7bf75953cd0c60b2b4a7eb0.js"[얻을]) :

ActionController :: RoutingError (어떤 경로 일치 "/assets/application-986dd79830088c416c1632c12999ec69.css"[얻을]) : (로그 \의 production.log 파일에 따라)

파일은 컴파일 된 내 공공/자산 디렉토리와 지문없이 해당 파일을 보여 않습니다

ls public/assets 
application-986dd79830088c416c1632c12999ec69.css 
application-986dd79830088c416c1632c12999ec69.css.gz 
application-a73ce43be7bf75953cd0c60b2b4a7eb0.js 
application-a73ce43be7bf75953cd0c60b2b4a7eb0.js.gz 
application.css 
application.css.gz 
application.js 
application.js.gz 

답변

47

레일은 기본적으로 생산 모드에서 고정 자산을 제공하지 않습니다. 당신이 비활성화하고 고정 자산을 제공하려면이 당신의 config/environments/production.rb 파일을 업데이트 :

config.serve_static_assets = true 

레일 '기본 구성 뒤에 추론은 당신이 생산 모드에서 표준 웹 서버 뒤에 실행됩니다 가정이다 (아파치, Nginx, 등) 다음 레일 애플 리케이션에 요청을 프록시 것입니다. 애셋이 미리 컴파일되었으므로 Apache/Nginx/etc. Rails 프로세스와 대화 할 필요없이 직접 서비스 할 수 있습니다.

+0

지금은 이해가됩니다. 훌륭한 설명에 감사드립니다. – jpwynn

+0

@Dylan 그냥 똑같은 문제를 겪었습니다 - 멋진 설명에 감사드립니다! – weltschmerz

관련 문제