2013-01-01 2 views
1

이 주제에 대한 많은 게시물을 검토했지만 내 문제를 해결하기 위해 조합을 찾을 수없는 것 같습니다. 이것이 반복이면 미안 해요.내 자산 파이프 라인을 깨다

문제 나는이 시점에 도달하기 위해 취한 일련의 단계가 확실하지 않습니다.

나는 Heroku의 개발과 제작 모두에서 완벽하게 작동하는 레일즈 앱을 가지고있었습니다. 그러나 Heroku 배포시 애셋 미리 컴파일하는 동안 오류가 발생했습니다. 그래서, Heroku가 배포하기 전에 'rake asset : precompile'이 로컬에서 실행되도록 설정을 변경했습니다. 배포 오류를 없애고 아무런 문제가 없습니다. 약간의 짜증나는 이제 로컬에서 프리 컴파일해야하고 Git 저장소에 파일을 포함해야했지만 오류가없는 배포가 마음에 들었습니다.

어쨌든, 개발 중에는 CSS 변경 사항이 즉시 반영되지 않았습니다. '레이크 자산 : 사전 컴파일'을 실행해야합니다. 그건 좋지 않아. 공개/자산을 삭제하면 해당 내용이 수정된다는 게시물을 발견했습니다.

이제 Javascript/Coffeescript 변경 사항이 즉시 반영되지 않습니다.

장황한 설명을 드려 죄송합니다.

변경 사항이 개발 중에 반영되는 세계로 나가기 위해서는 Heroku 배포 전에 'rake assets : precomplile'을 실행할 필요가 없으며 오류가 발생하지 않습니다. Heroku에서 사전 컴파일 중.

덜 이상적으로, 나는 초기 동작 (Heroku가 배치에 대해 불평하지만 모든 것이 여전히 정상적으로 작동 함)으로 돌아갈 것입니다. (예 config/production.erb에 대한) 플라이 사용에 자산을 미리 컴파일하려면

+0

당신은 heroku가'rake assets : precompile'이 로컬에서 실행되었다고 가정하도록 변경해야 할 설정이 무엇인지 정확히 알고 있습니까? 그리고 btw 여기에 제안 된 것을 시도 했습니까? https://devcenter.heroku.com/articles/rails3x-asset-pipeline-cedar 기본적으로'config.initialize_on_precompile = false'를 사용하십시오. – pjam

+0

예. 나는 config.assets.initialize_on_precompile = false를 가지고있다. –

+0

그리고 변경된 설정은 어떻게됩니까? – pjam

답변

0

config.assets.compile = true 
config.assets.precompile << '*.js' 

그런 다음 생산에 배포하기 전에 미리 컴파일 할 것인지 선택할 수있다 config/application.rb 보면

if defined?(Bundler) 
    # If you precompile assets before deploying to production, use this line 
    Bundler.require(*Rails.groups(:assets => %w(development test))) 
    # If you want your assets lazily compiled in production, use this line 
    # Bundler.require(:default, :assets, Rails.env) 
end 
관련 문제