2013-12-10 2 views
0

현재 Rails 4 자산 파이프 라인에는 모든 자산을 제거한 다음 자산을 다시 만들어야하는 경우가 있습니다.Rails 4 배치에서 모든 자산을 안전하게 다시 컴파일 하시겠습니까?

배포 중에 git에서 최신 버전을 가져온 후 내 서버에서 rake assets:clobber을 실행하고 rake assets:precompile을 실행하여 자산을 새로 고칩니다. 문제는 애셋이 제거되는 동안 애셋없이 페이지가 제공된다는 것입니다.

assets:clobber을 실행하지 않고도 Rails가 모든 자산을 다시 컴파일하도록 강제 할 수 있습니까?

+1

간혹 발생하는 문제는 무엇입니까? 그것이 당신이 고쳐야 할 것입니다. 그 문제에 관해 자세히 설명해 주거나, 재현 할 단계를 생각해 낼 수 있습니까? –

답변

0

자산을 사전 처리 컴파일 할 때 일반적으로 수행하는 작업은 다음과 같습니다.

// At a terminal, remove all assets from the file system 
$ rm -rf public/assets 
// Precompile the assets 
$ rake assets:precompile 

항상 나를 위해 일했습니다.

+0

그것은 본질적으로 clobber가하는 것입니다. 문제는 디렉토리가 삭제 될 때 들어오는 요청이 자산없이 제공된다는 것입니다. –

+0

두 번째 명령은 처음부터 자산을 컴파일하지만 ... 상자에서는 수행하지 않습니다. –

+0

'precompile'이 작동하면 문제는 '/ public/assets'에 아무것도없는 창이 있다는 것입니다 –

0

첫 번째 실행 rake assets:precompile 다음에 rake assets:clean을 실행하십시오. 그러면 오래된 자산 만 제거됩니다. https://github.com/rails/sprockets-rails/blob/master/README.md#rake-task

+0

그래서 Rails 4에서'precompile'은 새 파일 만 컴파일하려고 시도하지만 100 % 작동하지 않는 문제가 있습니다 (특히 Less gem의 경우). 따라서이 솔루션의 문제점은 변경되지 않은 파일을 다시 컴파일하지 않는다는 것입니다. –

+1

하나의 해결책은 CDN을 통해 호스트하는 것일 것입니다.이 CDN은 클리버 시간 동안 자산을 ​​캐시합니다. –

+0

Jeff Dickey는 말을합니다. –