2013-11-28 2 views
0

서버의 Apache/PostgreSql에서 실행되는 django 1.3 사이트의 일부 기능을 수정해야했습니다. 포스트 그레스와 내부 파이썬 개발자 서버가있는 가상 환경을 사용하여 개발 컴퓨터에서 설정하려고합니다.Django가 내 dev 컴퓨터에서 내 정적 파일을 인식하지 못합니다.

로컬 PG 인스턴스에서 사이트를 실행하고 읽을 수는 있지만 /site_media에 저장된 정적 파일을 인식 할 수 없습니다. 사이트는 곧 django 1.6과 적절한 /static 폴더를 사용하기 위해 다시 작성 될 것이지만 지금은이 사이트를 고칠 필요가 있습니다.

나는 또한 nginx와 gnunicorn을 사용하여 실행하려고했지만 결과는 동일하지만 스타일은없고 정적 디렉토리의 파일에 대한 모든 참조는 404입니다. 404의 추가 검사는 장고가 시도하고 있음을 나타냅니다. 라우터와 리소스를 해결할 수 있습니다. 여기

는 관련 설정은 다음과 같습니다

INSTALLED_APPS = (
    'django.contrib.staticfiles', 
) 

STATICFILES_DIRS = (
    '/home/nico/src/df2/datos/site_media/', 
) 

STATIC_URL = 'http://localhost:8000/site_media' 

의 nginx 설정 파일 :

server { 
    server_name localhost; 

    access_log off; 

    location /site_media/ { 
     alias /home/nico/src/df2/datos/site_media; 
    } 

    location/{ 
      proxy_pass http://127.0.0.1:8001; 
      proxy_set_header X-Forwarded-Host $server_name; 
      proxy_set_header X-Real-IP $remote_addr; 
      add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"'; 
    } 
} 

당신이 어떤 필요하면

settings.py: 

# Absolute path to the directory that holds media. 
# Example: "/home/media/media.lawrence.com/" 
MEDIA_ROOT = '/home/nico/src/df2/datos/site_media/' 

# URL that handles the media served from MEDIA_ROOT. Make sure to use a 
# trailing slash if there is a path component (optional in other cases). 
# Examples: "http://media.lawrence.com", "http://example.com/media/" 
MEDIA_URL = 'http://localhost:8000/site_media/' 

는 또한 아무 소용이 다음과 같은 설정을 추가 다른 설정 말해줘.

내가 파이썬 서버에서 순수하게이 작업을 실행하는 것을 선호 싶지만, gunicorn/nginx를 가진 솔루션

+1

[docs] (https://docs.djangoproject.com/ko/1.3/howto/static-files/)를 읽고'collectstatic'을 실행 했습니까? – jonrsharpe

+0

특히,'staticfiles_urlpatterns()'를 urlconf에 추가 했습니까? –

+0

@jonrsharpe 정적 파일의 루트가 이미 media_root로 설정되어 있고 정적 파일을 배치 할 디렉토리 구조를 변경할 수 없기 때문에이 파일을 사용할 수 없습니다 (게시물에서 말했듯이 이것은 앞으로의 단계, 지금 당장은 사이트를 그대로 두어야합니다.) –

답변

0

수정이 변수 urlpatterns에 고정 핸들러를 추가 있었다도 괜찮 :

from django.conf import settings 

if settings.DEBUG: 
    # static files (images, css, javascript, etc.) 
    urlpatterns += patterns('', 
     (r'^site_media/(?P<path>.*)$', 'django.views.static.serve', { 
     'document_root': settings.MEDIA_ROOT}))