2014-04-10 3 views
0

프로덕션 구성이 여전히 "비 다이제스트"URL 만 표시하는 이유를 알아 내려고했습니다. RAILS_ENV = production rails를 로컬에서 실행하면 URL의 작동이 잘됩니다. 그러나 제작을 시작하자마자 URL은 다이제스트 대신에 이렇게 표시됩니다.asset_sync 다이제스트가 프로덕션에서 작동하지 않습니다.

# Disable Rails's static asset server (Apache or nginx will already do this). 
    config.serve_static_assets = false 

    # Compress JavaScripts and CSS. 
    config.assets.js_compressor = :uglifier 
    # config.assets.css_compressor = :sass 

    # Do not fallback to assets pipeline if a precompiled asset is missed. 
    config.assets.compile = false 

    # Generate digests for assets URLs. 
    config.assets.digest = true 

    config.action_controller.asset_host = "//s3.amazonaws.com/xxxxx" 
    config.assets.prefix = "/production/assets" 

내가 URL의 컴파일 된 다이제스트의 URL으로 지적 할 수있는 트리거 실종 : 여기

//s3.amazonaws.com/xxxx/stylesheets/application.css 

내 생산 설정인가?

다른 질문 참조, 같은 문제 (방금 발견). Rails 4.0.3 generating incorrect asset paths with asset_sync

답변

0

바라기를 이것은 내 동료 프로그래머 친구들이 머리를 두드리는 데 도움이되기를 바랍니다. D. "digest_path & asset_digest_path not allowing digest URLs"에이 질문에 답변했지만 여기에 다시 게시하여 클릭 수를 줄일 수 있습니다.

파일을 S3에 업로드했지만 매니페스트가 레일스에 의해로드되지 않았다는 것을 알지 못했습니다. 위와 다른 스레드와 마찬가지로 모든 프로덕션 설정을 올바로 수행 할 수 있지만 Rails에서 읽을 수있는 manifest.json 파일이 없으면/javascript/* (예) URL이 생성됩니다.

나는 여전히 multi_json 보석의 최신 버전에 문제가있어서 1.7.8로 다운 그레이드 해 잘 동작합니다. 의

gem 'multi_json', '1.7.8' 

은 그래서 rake assets:precompile가 작성하는 manifest.json 파일을 읽을 수 있습니다.

/public/assets/manifest.json 

이에 대한 논쟁이있다

, 그냥 확인이에서 검색 가능하다 할 매니페스트 파일이 자식에있을 아니면 그냥 배포 스크립트에 가장 잘 맞는 일을해야하는지에 스레드 https://github.com/rails/sprockets-rails/issues/107을 스프라켓 또는 직접 지정하십시오.

config.assets.manifest = '...' 

해당 사항이있을 수도 있고 그렇지 않을 수도 있습니다.

건배!

관련 문제