2015-01-02 6 views
0

webfaction에서 내 django 응용 프로그램을 구성했으며 지금은 정상적으로 작동합니다. 나는 아파치에서 정적 파일과 미디어 파일을 제공하는 방법을 알고 싶었다. Django에는 이러한 파일을 제공하는 개발 서버가 있습니다. 내 로컬 환경에서 초기에 아파치를 설정하고 아파치를 통해 정적 및 미디어 파일을 제공하는 스크립트를 추가했다.Django 및 apache

그러나 webfaction에서 동일한 작업을 수행하는 동안 webfaction docs에 따라 많은 작업을 수행 할 필요가 없어서 아파치를 통해 이러한 파일을 제공하는 데 필요한 단계가 더 많아 질 것으로 생각됩니다.

따라서, 저는 정적이고 미디어 파일이 아파치에서 실행되고 있는지 아닌지 확인하고 싶었습니까? 나는 이것이 개발 환경에서 django가 정적이고 미디어 파일이 django 자체에 의해 제공되기 때문에이 파일을 제공하기 위해 아직 아파치를 구성하지 않았기 때문에 이것이 여기에 해당 될까 봐 걱정된다.

+1

Webfaction은 별도의 정적 전용 서버를 사용하여 파일을 제공합니다. –

+0

다른 정적 및 미디어 응용 프로그램을 만드는 한 다른 작업을 수행 할 필요가 없다는 의미입니까? – Uma

+0

나는 실제로 webfaction에 2 개의 정적 응용 프로그램을 만들고 정적 및 미디어 디렉토리 및 URL resp로 할당했습니다. 나는이 두 폴더가 다른 서버에 의해 제공된다는 것을 의미한다고 추정합니다. 그 맞습니까? 정적 폴더에 모든 파일을 전송하기 위해 collectstatic을 실행했습니다. – Uma

답변

3

WebFaction에서 전형적인 장고 배포는 두 개 이상의 응용 프로그램 인스턴스를 포함한다 :

  • 정적 전용 응용 프로그램 인스턴스를
  • 에 대한 심볼릭 링크를 실행하는 장고의 버전에 대한
  • 장고 응용 프로그램 인스턴스

정적 전용 앱의 심볼릭 링크는 심볼릭 링크의 원점에 대한 절대 경로를 입력해야합니다. 이것은 STATIC_ROOT으로 지정된 디렉토리를 가리켜 야합니다.

/my-project/ 
    /my-project/ 
     settings.py 
     ... 

    /static_assets/ (used for local development. Not typically deployed.) 
    /static/ (used for production) 

이 같이 WebFaction에서 디렉토리 구조로 변환 것 : 당신이 당신의 "웹 사이트"인스턴스를 만들 때

/home/ 
    /your-account-name/ 
     /webapps/ 
      /your-django-app-name/ 
       /apache2 
       /bin 
       /your-django-app-name (synonymous with "my-project" above) 
        /static/ (this is what your 'static' symlink path) 
       /lib 
        /pythonx.y (modules go here. Django lives here) 

, 당신이 당신의 장고 응용 프로그램을 지정하는 것 프로젝트 구조의 주어

인스턴스를 /에서 실행하고 STATIC_URL (일반적으로 /static)에 지정된 경로에서 심볼 링크 앱 인스턴스를 실행합니다.

당신은 차례로, STATICFILES_DIRS에있는 모든 파일을 제공 django.contrib.staticfiles하지 에 발생 WebFaction에서 DEBUG = False으로 실행해야합니다.

희망은 당신을 도와줍니다.

+0

이렇게하면 아파치에 대한 변경이 필요없고 정적 인 앱 인스턴스가 다른 서버에서 실행된다는 의미입니다. 나는 초보자 그래서 확신하고 싶습니다 :). – Uma

+1

정적 앱 인스턴스와 Django 인스턴스가 동일한 서버에 있습니다. – Brandon

+0

괜찮습니까? 그렇다면이 파일들을 서비스하도록 아파치 conf 파일을 변경해야합니까? – Uma