2010-12-15 3 views
3

기본 URL이 있습니다. http://baseurl.com/ 나는 그것의 뒤에 프로젝트를 실행하는 것을 시도하고있다. 예를 들어 http://baseurl.com/mongoose/ 프로젝트는 실행되지만 URL은 모두 이 기본 URL을 참조하기 때문에 제대로 작동하지 않습니다. 그래서 'About Me'페이지의 경우 대신 http://baseurl.com/about을 가리키고 있습니다.Apache | Django : 기본 URL의 뒷면에있는 웹 사이트를 실행하는 방법?

내가 장고 또는 아파치에서 변경해야 할 사항이 있습니까? 내가 가능할 수도있는 것을 이라고합니까?

IIS에서 오는 것 .net 배경 나는 Apache와 Django를 통해 지금 성취하고자하는 것을 실질적으로 수행하는 사이트 내에서 "Create and application"을 할 수 있다는 것을 알고 있습니다.

감사 프로젝트 (들)가 최고 수준이 될 것으로 예상 있는지 확인하기 위해 어떤 urls.py

답변

1

으로 확인해야합니다. 아무 것도 할 필요가 없습니다. 아파치는 기본 URL 인 SCRIPT_NAME이라는 요청 헤더를 설정하고 모든 URL 역전을 고려합니다.

템플릿에 이러한 URL을 어떻게 생성합니까?

업데이트 그래서 문제는 Flatpages의 URL을 받고 함께. 문제는 reverse() 함수 또는 {% url %} 태그를 사용하여 SCRIPT_NAME을 고려하여 URL을 동적으로 계산하는 방법이 Flatpages에서 작동하지 않는다는 것입니다. 왜냐하면 urls.py를 통해 전달되지만 사용자 정의를 통해 전달되기 때문입니다. 404에서 발생하는 미들웨어.

그래서 미들웨어를 사용하는 대신 urls.py 메커니즘을 사용하여 플랫 페이지로 전달합니다. 이 추가하여 패턴의 끝에 urls.py 에 settings.py에서 flatpagemiddleware를 제거하고 :

url(r'^(?P<url>.*)$', 'django.contrib.flatpages.views.flatpage', name='flatpage'), 

을 이제, 템플릿, 당신은 할 수 있습니다 :

<a href="{% url flatpage page.url %}"> 

및 제대로 작동해야합니다.

+0

답변을 추가하여 답변을 추가하십시오. 코드는 답장에 답장으로 게시되는 것이 행복하지 않았습니다. – darren

0

확인합니다. 그러나 응용 프로그램이 /something과 같은 링크를 출력하면 루트 디렉토리를 의미합니다. 응용 프로그램은 뷰/매개 변수를 URL로 바꿔야합니다. 그러면 URL을 이동시킬 수 있습니다. 앱을 작성한 경우 을 django.core.urlresolvers

+0

'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', 을 사용하고 있습니다. 따라서 내 urls.py에있는 flatpage URL을 잡지 않고 있습니다. – darren