Rails + Paperclip + AWS CDN + Heroku를 설치하는 방법을 마침내 생각한 것 같습니다. 모든 것이 효과가있는 것처럼 보입니다. CSS와 js 파일은 이미지뿐만 아니라 cdn에서도로드됩니다. 불행히도 공유 기능이 손상되었습니다. 열린 그래프가 이미지 URL을 구문 분석 할 수 없습니다. 링크가이 형식으로되어 있기 때문이라고 생각합니다. https:////drex16ydhdd8s.cloudfront.net/...rest_of_url
Rails + Paperclip + AWS CDN + Heroku를 올바르게 설정하는 방법
원래 오래 전, 나는 CDN 링크를 //drex16ydhdd8s.cloudfront.net
으로 구성했습니다. 나는 링크 앞에서 슬래시를 제거해야한다고 이해하고 대신 drex16ydhdd8s.cloudfront.net
으로 만드십시오.
내가 문제가되면, Heroku가 응용 프로그램 오류를 발생시킵니다. (정적 페이지를 표시합니다) 로그는 메모리 제한을 넘어서는 것 외에는 도움이되는 어떤 것도 표시하지 않습니다.
나는 Heroku가 지원 연락을했지만, 그들의 반응은 당신이 그냥 호스트 이름이어야합니다, 어떤 슬래시를 필요가 없습니다
이었다. (config.action_controller.asset_host에 대한 설명서에서 볼 수 있듯이) 슬래시를 제거하면 오류가 발생하므로 해당 오류를 디버그해야합니다.
로컬로 처리하려고 시도했지만 모든 것이 예상대로 작동하는 것 같습니다.
환경/production.rb
config.action_controller.asset_host = ENV.fetch("ASSET_HOST", ENV.fetch("APPLICATION_HOST"))
config.paperclip_defaults = {
storage: :s3,
s3_protocol: :https,
s3_region: ENV["AWS_REGION"],
url: ":s3_alias_url",
path: "/:class/:attachment/:id_partition/:style/:filename",
s3_host_alias: ENV.fetch("ASSET_HOST"),
s3_credentials: {
bucket: ENV["S3_BUCKET_NAME"],
access_key_id: ENV["AWS_ACCESS_KEY_ID"],
secret_access_key: ENV["AWS_SECRET_ACCESS_KEY"]
},
default_url: "https://s3.amazonaws.com/ezpoisk/missing-small.png"
}
내가 2 befaviors
이 CDN에ASSET_HOST = //drex16ydhdd8s.cloudfront.net
ENV 변수
- /자산/* - 해당 도메인 이름
- 기본 포인트 (*) - s3 버킷을 가리 킵니다.
누구에게 아이디어가 있습니까?