하위 디렉토리에 Django WSGI 애플리케이션이 있나요?

하위 디렉토리에 Django WSGI 애플리케이션이 있나요?

최근에 나는 내 WSGI 애플리케이션 중 하나를 하위 디렉토리에 넣어 다양한 스크립트가 포함된 다른 디렉토리가 이전처럼 작동하도록 하고 싶었습니다. 그렇게 하기 위해 전역 네임스페이스에 다음 지시문을 추가했습니다 (역시 동일한 효과를 주는 httpd.conf에 넣으려고 했습니다 ).VirtualHost

WSGIScriptAlias /hello/ /var/www/hello/hello.wsgi

그런 다음 나는 달렸다 django-admin startproject hello. Apache 구성을 다시 로드한 후 http://localhost/hello/Django "환영" 화면을 가리키는지 확인할 수 있습니다 . 그런 다음 튜플 hello/urls.py에 다음 줄을 추가하도록 편집했습니다 urlpatterns.

url(r'^hello/', 'hello.views.home'),

다음으로 다음 내용으로 hello/views.py를 만들었습니다.

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world")

불행하게도 을(를) 방문하려고 하면 http://localhost/hello/hello표준 Apache 404 메시지가 표시되고 오류 로그에 다음 항목이 표시됩니다.

[Mon Dec 23 19:49:44 2013] [error] [client 31.182.131.38] Target WSGI script not found or unable to stat: /var/www/hello/hello.wsgihello

. hello.wsgihello​두 번째는 URL 뒤에 hello나타나는 텍스트입니다 . /hello/http://localhost/hello/unknown경우는 입니다 hello.wsgiunknown. 내 내용은 다음과 같습니다 hello.wsgi.

import os
import sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'hello.settings'

path = '/var/www/hello'
if path not in sys.path:
    sys.path.append(path)

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

내가 뭐 잘못 했어요? 어떻게 해결하나요?

답변1

파일 구문이 /var/www/hello/hello.wsgi나를 혼란스럽게 했습니다. 분명히, 대신에 하나를 가리키면 /var/www/hello/hello.wsgi/구성이 제대로 작동하는 것 같습니다.

관련 정보