2012-06-05 3 views
2

두 개의 별도 서버가 있습니다. 하나는 "www.example.com"에 django 인스턴스를 호스팅하고 다른 하나는 "static.example.com"에 정적 파일을 제공하고 있습니다. 장고 설정에서 MEDIA_URL"static.example.com"을 가리 킵니다. 따라서 내 photologue는 "static.example.com" 도메인을 사용하고 있습니다.자동 생성 photologue 이미지 URL이 재정의 할 수 있습니까?

내 photologue에 "www.example.com"을 사용하고 싶지만 photologue에 대해 MEDIA_URL 설정을 무시할 수있는 방법을 알 수 없습니다. 이 문제를 해결할 방법을 알고 있습니까?

참고 : 장고는 AWS (Amazon Web Service)에서 호스팅되는 정적 파일 이상으로 제공됩니다. 난 단지 photologue 도메인을 변경하고 싶습니다. 다른 정적 파일은 그대로 있어야합니다.

+1

아파치와 같은 웹 서버를 통해 미디어 파일을 제공하려고 시도하십시오 ... –

+0

정확하게 의미하는 바를 얻지 못합니다. 더 자세한 설명을 할 수 있습니까? –

+0

우리는 genrally 아파치를 통해 이미지와 같은 정적 콘텐츠를 제공하지 않고 장고를 통해 –

답변

1

불행히도 Photologue는 이에 대한 설정을 제공하지 않습니다.

그러나 코드를 살펴보면 트릭을 수행해야하는 해결 방법을 발견했습니다. 나는 당신이 get_SIZE_url() 방법을 사용한다고 가정합니다. 모든 방법은 self.cache_url()입니다. 따라서이 메서드를 재정의하는 ImageModel (또는 함께 제공되는 기능을 원할 경우 Photo)의 하위 클래스를 만들 수 있습니다. 당신이 Photo을 확장하는 경우

from photologue.models import ImageModel # or Photo 

class LocalPhoto(ImageModel): # or Photo 

    def cache_url(self): 
     local_path = os.path.dirname(self.image.url)[7:].split('/', 1)[1] 
     return '/%s/%s' % (local_path, 'cache') 

당신은 이미 get_absolute_url()을 작업하는 다른 구현이 정직해야합니다.

장고 관리자는 get_admin_thumbnail_url()을 사용합니다. PhotoSize을 'admin_thumbnail'이라는 이름으로 정의하면 위의 방법도 올바르게 작동합니다.

효과에는 장고 관리자의 샘플 이미지에 효과를 나타 내기 위해 사용되는 방법 sample_url()이 있습니다. 이 방법은 MEDIA_URL을 기반으로하므로 작동하지 않습니다. 불행히도이 경우 단순히이 메서드를 재정의 할 수 없습니다. 그러나 이러한 이미지는 변경되지 않으므로 AWS로 업로드 할 수 있습니다.