2012-03-27 2 views
3

생산 과정에서 Heroku와 동적 자산을 S3에 사용합니다. 그것은 잘 작동합니다. 이제 통계 자산을 S3에 보내려고합니다. 나는이 튜토리얼을 따라 https://devcenter.heroku.com/articles/cdn-asset-host-rails31S3로 자산 경로 문제

I asset_sync 보석, 내가 Heroku가 ENVs, 내 설정/production.rb 내가 heroku run rake assets:precompile

잘 작동하는 것 같다 실행 내 구성 덧붙였다

 
    Using: Directory Search of /app/public/assets 
    Uploading: assets/application.js.gz 
    Uploading: assets/application.css 
    Uploading: assets/application-8977252f192f3e36dbd6b5142de920e3.css.gz 
    Uploading: assets/eurof35-webfont-4ea19cda003d589e688cedcf9f79ddd6.eot 
    Uploading: assets/application.css.gz 
    Uploading: assets/application-8977252f192f3e36dbd6b5142de920e3.css 
    Uploading: assets/application-a904f1bc7724b6f68e1f8d38d03a093e.js.gz 
    Uploading: assets/application-a904f1bc7724b6f68e1f8d38d03a093e.js 
    Uploading: assets/application.js 
    AssetSync: Done. 

을 그러나 때 내 웹 사이트를로드하면 CSS 또는 JS 파일이 없습니다. 내가 코드를 검사 할 때 당신이 내 S3 버킷에 가지고 호출되는 CSS 응용 프로그램이 동일하지 않습니다 볼 수 있듯이 는 <link href="http://s3.amazonaws.com/annoncestest/assets/application-85cc4376a5de3b224db7c0548a44e7cb.css" media="all" rel="stylesheet" type="text/css" />

있다.

의견이 있으십니까?

EDIT : application.js 파일에는 문제가 없지만 좋은 파일이 필요합니다. 그러나 css 파일 (application.css 및 admin.css)에는 해당되지 않습니다. 나는 CloudFront로 시도했고 그 결과는 같습니다.

답변

2

레일스 3.2를 사용하고 있으므로 훨씬 편리합니다. asset_sync 보석을 꺼내십시오. 아마존으로 가서 S3 대신 CloudFront 섹션을 찾으십시오. 이것은 그들의 CDN 프런트 엔드입니다. 이전에 S3 버킷을 사용하도록 설정했을 수 있습니다.

레일즈 3.2를 사용하면 CloudFront가 "원점"을 사용하도록 설정하면됩니다. 출발점이 있으면 양동이가 아닌 응용 프로그램의 위치를 ​​제공합니다. 사용자가 CDN에서 파일을 요청하면 CDN이 앱으로 이동하여 파일을 가져 와서 CDN 캐시에 추가합니다. Rails Assets는 고유 한 파일 이름을 사용하기 때문에 항상 최신 파일을 갖습니다.

CloudFront 위치를 레일스 앱에 자산 소스로 지정하십시오. 그런 다음 전개하고 heroku가 자산을 컴파일하게하십시오.

내가 마지막으로 Heroku가 도움의 솔루션 덕분에 볼 수있는 티켓을 닫으려면 당신의 production.rb

# Setup amazon CDN 
    config.action_controller.asset_host = "xxxxxxxxxxxxx.cloudfront.net" 
+0

CloudFont를 사용하려고합니다. 내가 처음 사용할 때다. 문제는 완전히 동일합니다. 좋은 파일은 application-8ca5a598d66f10665412206609959502.css 인 반면에 application-78f1cb320258c94aa117a5c29a985b4d.css을 사용하려고합니다. –