your programing

레이크 자산에 대한 혼란 : 레일의 자산 파이프 라인에서 청소 / 정리

lovepro 2021. 1. 5. 19:48
반응형

레이크 자산에 대한 혼란 : 레일의 자산 파이프 라인에서 청소 / 정리


누군가 명령이 rake assets:clean실제로 무엇을하는지 설명해 주 시겠습니까? 불행히도 Rails Guides는 그것을 언급하지 않습니다. 명령도 rake assets:cleanup있습니다. 차이점이 뭐야?

또한 누군가가 언제 rake assets:precompile프로덕션 에서 실행해야하는지 알려줄 수 있습니다. 모든 애플리케이션 파일을 프로덕션 서버에 배포 한 후 서버 콘솔에서 실행합니까? 아니면 precompile내 로컬 컴퓨터에서 모든 파일을 배포합니까?

모두 감사합니다


참고 :이 답변은 레일 3에만 해당됩니다. 레일 4 이상에 대해서는 여기에서 다른 답변을 확인하십시오.

로컬 머신에서 사전 컴파일하는 경우 생성 된 자산을 저장소에 커밋하고 배포를 진행할 수 있습니다. 프로덕션 머신에서 컴파일 할 필요가 없습니다.

그러나 문제가 발생합니다. 이제 소스 파일 (coffescript / scss)을 변경할 때 앱이 변경 사항을 선택하지 않습니다. 대신 미리 컴파일 된 파일을 제공하기 때문입니다. rake assets:clean이러한 사전 컴파일 된 파일을 삭제합니다.

내 프로젝트에서 자산은 배포의 일부로 미리 컴파일됩니다. Capistrano는이를 매우 쉽게 만듭니다.

또한 rake assets:cleanup.


rake assets:clobber실제로 자산을 청소하기 위해 실행하십시오 . http://www.dixis.com/?p=735


Sergio의 대답은 Rails 3에서 완전히 정확했습니다 . rake assets:clean이전에 public/assets디렉토리 에 사전 컴파일 된 모든 자산을 삭제했습니다 .

Rails 4에서는 rake assets:clobber동일한 작업을 수행합니다.

rake assets:precompile다음 구성으로 실행 하는 경우 (기본적으로 스테이징 및 프로덕션에서 사용 설정 됨) :

# config/environments/production.rb
config.assets.digest = true

컴파일 된 자산에 타임 스탬프가 표시됩니다. 즉, 이전 자산은 그대로두고 새 자산을 컴파일 할 수 있습니다. 일반적으로 프로덕션에서이 작업을 수행하기를 원하므로 precompile새 파일을 만들기 위해 실행 하는 동안 웹 사이트에서 이전 파일에 계속 액세스 할 수 있습니다 (새 css / javascript를 추가했기 때문에). 이제 더 이상 사용하지 않는 이전 파일을 제거하려고합니다. clean장소에서 새로운 자산을 떠나있는 동안은 미리 컴파일 된 자산의 이전 버전을 제거합니다.


rake assets:clean컴파일 된 자산을 제거합니다. cap deploy:assets:clean일반적으로 원격 서버에서 컴파일 된 자산을 제거하기 위해 실행됩니다 .

cap deploy:clean일반적으로 원격 서버에서 이전 릴리스를 제거합니다. 아닙니다rake assets:clean

갈퀴! = 모자


rake assets:clean이제에서 실행됩니다 cap deploy:cleanup_assets. require 'capistrano/rails/assets'Capfile에 추가 하면이 cap-task를 얻을 수 있습니다. 내 카피 스트라 노 버전은 v3.2.1입니다.


추적되지 않은 파일 git clean -f을 파일 및 git clean -f -d디렉토리로 정리하십시오.

참조 URL : https://stackoverflow.com/questions/9335803/confusion-about-rake-assetsclean-cleanup-on-the-asset-pipeline-in-rails

반응형