2015-01-17 5 views
1

mod_wsgi로 django를 아파치에서 실행할 때 django 설정 파일에 CSS 경로를 쓰는 방법.
아래와 같이 아파치 설정 파일을 작성합니다.
mod_wsgi로 아파치 Django에서 CSS 파일 경로를 찾을 수 없습니다.

#httpd.conf 
WSGIPythonHome /opt/python3.4 
WSGIPythonPath /opt/python3.4/bin/python3 
WSGIScriptAlias//usr/local/django/mysite/mysite/wsgi.py 
Alias /static/ /usr/local/django/mysite/mysite/static/ 

이 별칭 명령은 장고의 관리자 사이트에서 CSS 경로입니다.
admin 사이트의 정적 파일을 복사합니다.
How to use Django with Apache and mod_wsgi

1.7 용 django 버전 1.7 및 주요 튜토리얼을 사용하고 있습니다.
Tutorial 6은 django에서 정적 CSS와 이미지 파일을 사용하는 방법입니다.
내 장고 파일 트리/settings.py

PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__)) 
STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(PROJECT_ROOT,'static') 

있는 style.css가
여론 조사/템플릿/설문 조사/템플릿/조사/views.py에 의해 사용되는

mysite 
- manage.py 
+ mysite 
    - settings.py 
    + static 
    - urls.py 
    - wsgi.py 
+ polls 
    - admin.py 
    - models.py 
    + templates 
    + polls 
     - index.html 
    - urls.py 
    + static 
    + polls 
     - style.css 
    - views.py 

내 사이트 다음과 같다 여론 조사/views.py는

{% load staticfiles %} 
<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" /> 

나는 로컬 호스트 액세스했습니다.
그러나 폴링 용 CSS 파일을 찾지 못했습니다. (localhost/static/polls/style.css)
아래와 같이 httpd.conf 파일을 수정하면됩니다.

WSGIPythonHome /opt/python3.4 
WSGIPythonPath /opt/python3.4/bin/python3 
WSGIScriptAlias//usr/local/django/mysite/mysite/wsgi.py 
Alias /static/ /usr/local/django/mysite/polls/static/polls/ 

폴링 응용 프로그램에 정적 파일을 사용할 수 있습니다.
그러나이 경우 관리자 사이트의 정적 파일을 찾을 수 없습니다.
관리자 사이트 및 응용 프로그램에서 정적 파일을 사용하고 싶습니다.
mod_wsgi에서 아파치의 정적 파일을 어떻게 사용할 수 있습니까?

+0

프로젝트 외부의 디렉토리에'STATIC_ROOT'을 설정하고 그에 따라 httpd.conf를 조정 한 다음'manage.py collectstatic'을 실행해야한다고 생각합니다 https://docs.djangoproject.com/en/1.7/ref/contrib/ staticfiles/# django-admin-collectstatic – Anentropic

+0

나는 static을 수집합니다. 그것이 작품입니다. 감사합니다. – Edama

답변

2

같은 것을해야합니다. httpd.conf 파일에서

Alias /static/ /path/to/your/STATIC_ROOT/directory/ 

<Directory /path/to/your/STATIC_ROOT/directory> 
    Require all granted 
</Directory> 

, 당신은 정말 모든 정적 파일 +는 관리자 정적 파일이 STATIC_ROOT 디렉토리에 수집 장고 것을 ./manage.py collectstatic를 실행해야합니다.

은 다음 settings.py

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'polls/static'), 
) 

에이 라인을 추가하고 또한 docs을 통해 이동 메인 urls.py을 열고 말

from settings import STATIC_ROOT 
if conf.DEBUG == True: 
    urlpatterns = patterns('', 
     url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': STATIC_ROOT}), 
    ) + urlpatterns 

에 다음 줄을 추가합니다.

이제는 문제가 해결되기를 바랍니다.

+1

'django.views.static.서브 (serve) '는 dev에 대해서만, 즉 Django runserver와 함께 사용됩니다. Apache + mod_wsgi를 설정하면 일반적으로 아파치가 정적 파일을 대신 제공하기를 원합니다. – Anentropic

관련 문제