6

나는 발표 레일 3.1.0에서 작동하도록이 코드를 업데이트하기 위해 노력하고있어 :, 3.1.0

# temporarily set the static assets location from public/assets to our spec directory 
    ::Rails.application.assets.static_root = Rails.root.join("spec/javascripts/generated/assets") 

    ::Rake.application['assets:clean'].invoke 
    ::Rake.application['assets:precompile'].invoke 
이제

톱니 그 :: 환경 # static_root가 제거되었습니다. 일시적으로 스프로킷 출력 디렉토리를 변경하는 가장 좋은 방법은 무엇입니까?

편집 : 또한 나는 내 사용자 지정 출력 디렉토리 :

답변

1

당신은 config.assets.prefix를 사용할 수있는 자산을 청소 수 있도록하고 싶습니다,하지만 여전히 대중 디렉터리 (대한 here을 볼 수있는 자산을 넣어 것입니다 레이크 작업은 public_path과 접두사를 결합합니다.

귀하의 경우에는

이 작동합니다 :

Rails.application.config.assets.prefix = "../spec/javascripts/generated/assets" 
Rails.application.config.assets.manifest = File.join(Rails.public_path, config.assets.prefix) 

나는 때문에 톱니 railtie의 이상한로드 순서의 매니페스트 경로를 지정했다. 그것을하지 않으면, 그것은 존재하지 않고 레이크 작업을 폭파하는 public/assets에서 멈추게됩니다. YMMV.

사이드 노트 : 처음에는 개발 환경에서 이것을 시도했지만 config.assets.prefix은 변경을 거부했습니다. 나는 config.assets.enabledtrue에 넣는 것이이 문제를 해결했을 것이라고 생각하지만, 아직 테스트하지는 못했습니다. 보너스로

,이 솔루션 (자신 in the rake task을 위해 그것을 볼 수 있습니다)와 완벽하게 assets:clean 작품

정말 나에게 레일 소스에서 다이빙을 할 수있는 완벽한 변명을주고 이런 종류의 질문을 사랑
+0

-) –

+0

Benoit, 고맙습니다. –

+0

레일 에서처럼 작동하지 않습니다. 4 –