2013-12-19 6 views
0

heroku 서버에 프로젝트를 배포하는 데 문제가있었습니다 (프리 컴파일 실패). 그래서 나는이 응답 (https://stackoverflow.com/a/13713753/2989437)을 발견하고 충고를 계속했다. 그때, 사전 컴파일 명령을 실행하여 변경 내용을 노력하고, Heroku가 성공적으로 배포 관리Ruby on Rails : RAN RAKE 자산 : 프리 컴파일 이제 로컬 및 heroku 배포에는 부트 스트랩이 포함되지 않습니다.

application.rb

module FirstEdc 
    class Application < Rails::Application 
    config.assets.initialize_on_precompile = false # I added this line 
    ... 
end 
end 

: 내 application.rb 파일에 한 줄을 추가했다. 그러나 지금은 내 부트 스트랩/css가 heroku 배포와 로컬 배포에서 모두 작동을 멈춘 것으로 보입니다. ,

deployment.rb

FirstEdc::Application.configure do 
    ... 

    # Allows for local precompilling --added by Ian 
    config.assets.prefix = '/dev-assets' 
end 

그래서이 추가을 재 컴파일 및 재배포하지만 아무 소용에 :

나는 내가 내 deployment.rb 파일에 다른 줄을 추가하기로 한 것을 배웠다.

마지막으로, 나는 레이크 자산을 실행했습니다. 적어도 로컬 배포를 정상적으로 다시 시도하려고 시도했지만 작동하지 않았습니다.

모든 조언을 주시면 감사하겠습니다. 지금 자산 파이프 라인에 대해 더 많이 읽고 있습니다. 그러나 캐시 문제 또는 이와 같은 문제가 될 수 있습니다. 나는 무슨 일이 일어나는지 알아낼 때 업데이트 할 것이다.

편집. 명확히하기 위해, 나는 두 가지 추가 사항을 제거하고, rake 자산을 실행 해 보았습니다. : 깨끗한 : rake 자산 : clean : 모두 로컬 배포를 수정하지 않았습니다.

+0

어떤 버전 (권장되는 방법은 Heroku가 푸시 동안을 미리 컴파일 할 수 있도록하는 것입니다)? 'initialize_on_precompile'은 Rails 4에는 영향을 미치지 않습니다. –

+0

'assets : clean'은 미리 컴파일 된 애셋을 지우지 만 Sprockets는 지우기를 시도 할 수있는 캐시를 유지합니다. 'rake tmp : cache : clear'을 사용하십시오 : http://stackoverflow.com/questions/9246585/how-to-clear-sprockets-cache/13503672#13503672 –

답변

0

내 응용 프로그램에서 config.assets.prefix을 사용하지 않으며 Heroku와 잘 작동하므로 그 일이 무엇인지 잘 모릅니다.

해당 줄을 제거한 다음 rake assets:clean을 실행 해보십시오. 이제 로컬 서버가 파일을 변경할 때 파일을 사용해야합니다. 밀기를 원하면 rake assets:precompile을 먼저 실행 한 다음를 누르십시오.

이후에 로컬에서 변경하려면 rake assets:clean을 다시 실행하여 로컬 컴퓨터의 미리 컴파일 된 파일을 제거하십시오.

+0

두 가지를 모두 제거하고 레이크 에셋을 시도했습니다 : 깨끗하고, 하지만 내 부트 스트랩은 여전히 ​​작동하지 않습니다. 지금은 배포 할 수 있는데 플러스이지만 어떻게 부트 스트랩을 다시 사용할 수 있는지 잘 모르겠습니다. 보석 'bootstrap_helper'를 추가했지만 도움이되지 않았습니다. –

+0

첫 번째 추가를 제거하지 마십시오. 'config.assets을 유지하십시오.initialize_on_precompile = false' – tyler

+0

config.assets.initialize_on_precompile = false로 유지하면 나에게 영웅을 밀어 넣을 수 있습니다. 그러나 내 부트 스트랩은 아직 로컬 또는 프로덕션에서 작동하지 않습니다. –

0

Heroku가 public/assets에있는 파일을 발견하면 자산을 다시 사전 컴파일하려고 시도하지 않습니다. 이는 의도적으로 설계된 동작입니다.

따라서 자산을 항상 rake assets:precompile으로 사전 컴파일하거나 public/assets의 파일을 제거하여 Heroku로 푸시하기로 결정해야합니다.

사용하는 레일의

+0

답변 해 주셔서 감사합니다. 내 부트 스트랩이 작동을 멈춘 이유에 대한 통찰력이 있습니까? 다시 한번 감사드립니다. –

+0

"중지 된 작업"이 의미하는 바를 명확하게 설명해 주시겠습니까? 부트 스트랩 자산을 포착하지 않습니까? 오류가 있습니까? – Donovan