2011-08-20 4 views
0

나는 Heroku에서 레일 애플리케이션을 호스팅하고 있습니다. 슬러그 크기를 줄이기 위해 모든 공용 폴더 파일을 jammit-s3 gem을 통해 Amazon S3로 옮겼습니다. 모든 것이 완벽하게 작동했습니다. 내 응용 프로그램은 s3의 js & css 파일에 액세스하여 표시 할 수 있지만 한 가지 문제가 있습니다.레일즈 앱 - 아마존 s3을 통해 adobe edge 자바 스크립트 파일에있는 이미지에 접근하기

내 응용 프로그램의 이미지 갤러리에 Adobe Edge (애니메이션 용 HTML5 도구)를 사용하고 있습니다. Adobe Edge는 자동으로 JavaScript 파일 &을 일부 생성합니다.

content: { 
    dom: [ 
    { 
     id:'Image1', 

     type:'image', 
     rect:[0,0,600,400], 
     fill:['rgba(0,0,0,0)','../images/schimg1.png'], 
    }, 

을 당신이 그것을 매개 변수로 schimg1.png (공공/이미지 /) 복용 볼 수 있듯이 다음과 같이 하나 개의 자바 스크립트 파일 (공공/자바 스크립트/x.js)의 일부이다. S3에 내 파일을 이동하기 전에 자바 스크립트는 이미지에 액세스하여 하나의 폴더를 이동하고 이미지에 액세스하여 이미지를 표시 할 수 있습니다. S3로 이동 한 후에는 더 이상 작동하지 않습니다. 내가 Heroku에서 공용 폴더를 호스팅했을 때 제대로 작동했습니다.

어떻게 해결할 수 있습니까? 자동으로 생성되기 때문에 자바 스크립트의 주요 수정을 포함하지 않는 솔루션을 주셔서 감사하겠습니다.

답변

0

'../images/schimg1.png'는 이미지가 Heroku slug에 있고 heroku 앱 서버의 올바른 위치에있는 경우 작동합니다.

이미지가 S3에있는 경우, 다음으로 변경해야합니다 :

'HTTP : //myamazons3.account.subdomain/pathtoimage/schimg1.png'

+0

내가 그와 유사한 시도 다음과 같이 http://mys3bucketname.s3.amazonaws.com/images/schimg1.png하지만 여전히 유용하지는 않습니다. 브라우저에 위의 링크를 넣으려고하면 이미지에 액세스 할 수 있습니다. 그래서 몇 가지 자바 스크립트 파일을 액세스 할 수 없습니다. –

+0

근본 문제를 발견했습니다. 이미지 경로와 관련이 없습니다. 내가 사용하는 전자는 정확하지만 문제는 레일스가 자바 스크립트 파일을 포함하는 방법이었습니다. 나는 그들의 파일 이름에 "몇 개의 점"이있는 세 개의 자바 스크립트 파일을 가지고있다. 그래서 특정 파일에 "javascript_include_tag"를 호출하면 레일스는 파일 끝에 ".js"를 추가하지 않습니다. 따라서 브라우저는 필요한 자바 스크립트 파일 및 이미지를로드 할 수 없으며 표시되지 않습니다. "javascript_include_tag"의 예상되는 동작입니까? –