2013-04-05 4 views
-2

내가 내 응용 프로그램 폴더 외부에 저장된 일부 이미지를 보여쇼 이미지 루비 레일에 대한

<img src =../../../photo/1.PNG > 

를 사용하려면 레일. 나는 이것을 사용하여 .. 이미지를 가리키는 것을 사용하지만 작동하지 않습니다 .Win7을 사용합니다. 누군가 저를 도울 수 있습니까?

나는 비계에 의해 생성 된 "쇼케이스"라는 MVC를 가지고 있으며 두 개의 앱에서 동일한 쇼케이스를 갖고 싶어. app1 : showcase (이미지를 공유하고 싶은 위치) model : house는 이미지 이름입니다.

class Showcase < ActiveRecord::Base 
    attr_accessible :house,:sequence 

    has_attached_file :house, :whiny => false, 
        :styles => { :large => "350x300>", 
            :medium => "120x100>", 
            :thumb => "50x50>"} 
end 

다음 이미지가 폴더에 업로드됩니다 : 공공/시스템/쇼케이스/주택// 000/0001 000/1.PNG

APP2에

에게. 나는 마이그레이션으로 쇼케이스 모델을 만든다. ActiveResources는 app1과 app2 사이에서 데이터베이스를 공유합니다. app2는 클립 유형을 구성 할 수 없습니다.

class Showcase < ActiveResource::Base 
    self.site = "http://localhost:3000" 
end 

어떻게 app2에서 app1에서 업로드 된 이미지를 호출 할 수 있습니까?

+0

가능한 복제본 : http://stackoverflow.com/questions/8370915/rails-how-to-link-to-assets-outside-the-app-directory – Zippie

답변

0

, 그들은 업로드하고하지 고정 자산은 다음 다음, 다른 곳에 시스템 폴더를 만들 수있는 시스템 폴더를 만들 : 자세히 들어

는 다음과 같은 가이드 라인을 읽어 각 애플 리케이션은 공유 폴더에 대한 심볼릭 링크. 그런 식으로 당신은 미친 url 길을 가지지 않고있다. 그리고 그들은 양쪽 다 그것을 능숙하게 맞을 수있다. 그리고 당신은 속이나 불일치로 끝나지 않을 것이다.

+0

답장을 보내 주셔서 감사합니다. 합리적으로 보입니다. 전 ror에있는 새입니다. 자세히 설명해 주시겠습니까? 위 질문을 편집했습니다. – sun

+0

각각의 앱에 시스템 폴더가있는 대신에 간단하게 '시스템'폴더가 있고 그 다음에는 각 앱에 시스템 폴더가 새로운 '시스템'폴더에있는 심볼릭 링크가 있습니다. 그렇게하면 같은 업로드 폴더를 공유하게됩니다. 클립 클립이 지원하는 Amazon S3와 같은 서비스를 사용하여이 작업을 수행 할 수도 있습니다. – rovermicrover

+0

네, 잘 했어요! 모든 이미지가 지금 나타날 수있어, 많이 감사합니다. – sun

0

레일 3 이상을 사용하는 경우 실제로는 레일스 자산 파이프 라인을 사용해야합니다. 앱/자산/이미지에 이미지를 넣고 자산에 URL을 제공하는 레일스 함수를 호출합니다. < % = image_tag "rails.png"%> 당신이 정말로 응용 프로그램간에 이미지를 공유하려고하면 http://guides.rubyonrails.org/asset_pipeline.html

+0

이미지는 다음과 같이 다른 앱의 폴드에 위치합니다. public /systems/images/1.png (그들이 있어야 할 곳). 내 두 레일 앱의 같은 부분을 공유하고 싶어하기 때문에. 레일이 현재 앱 밖에있는 이미지를 보여줄 수 있는지 여부를 알고 계십니까? – sun

+0

허용되지 않습니다. 루트 URL은 응용 프로그램의 디렉토리를 나타냅니다. 루트 위치를 벗어날 수는 없습니다. 별도의 앱이므로 각 앱에 이미지를 복제하는 것이 좋습니다. – Edward

+0

또한 정말로 그렇게해야하는 경우 공개 디렉토리가 URL에 포함되어서는 안됩니다. 예 : public/systems/images/1.png 대신에 /systems/images/1.png를 시도하십시오. – Edward