2012-08-30 4 views
7

webfactional의 서버에서 webapp을 실행하려고 할 때 STATIC_URL 및 STATIC_ROOT에 관한 문제가 2 시간 남았습니다.서버 장고의 STATIC_ROOT

{{STATIC_URL}} 링크가 작동 중이거나로드 중이라는 사실을 제외하고 웹 페이지를로드 할 때 모든 요청이 잘 작동합니다.

그래서 불을 지르고에 나타나는 일반적인 오류는 다음과 같습니다

urls.py 나는 아무것도하지 않았다, 정적 파일에 대한 아무것도 없다 :

GET http://mydomain/static/extras/h5bp/js/libs/modernizr-2.5.3.min.js 500 (Internal Server Error) 

내 설정이다. 거짓

settings.py DEBUG =

STATIC_ROOT = '/home/mydomain/webapps/static_app/' 
STATIC_URL = 'http://mydomain/static/' 
STATICFILES_DIRS =() 

views.py 예보기

@csrf_exempt 
def IndexView(request): 
    try: 
     request.user.is_authenticated() 
    except AttributeError: 
     return render_to_response('index.html', 
           {'request': request,}, 
           context_instance=RequestContext(request)) 

    return render_to_response('index.html', 
        {'request': request, 'profile' : request.user}, 
        context_instance=RequestContext(request)) 

index.html을 잘

<script src="{{ STATIC_URL }}extras/h5bp/js/libs/modernizr-2.5.3.min.js"></script> 

가없는 코드의 부분, 나는 모든 요점을 따른다 : https://docs.djangoproject.com/en/1.4/howto/static-files/ 이 또 다른 하나 내가 올바른 설치된 앱, 미들웨어, template_contexts을 사용하고 http://docs.webfaction.com/software/django/getting-started.html

.

내가 뭔가를 놓친다면 이해해주세요.

미리 감사드립니다. 난 그냥 DEBUG를 변경하는 경우

내가 말을해야

는 = 진정한 뜻이 잘 작동 --edit

.

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

답변

11

2 가지 개발 환경에서 필요하지 않은 생산 environent에 발생합니다

때문에 urls.py에 나는이 코드 조각이있다.

manage.py collectstatic을 실행해야합니다. 모든 정적 파일을 STATIC_ROOT 디렉토리에 수집합니다.

STATIC_ROOT 디렉토리에 STATIC_URL URL을 제공해야합니다. 프로덕션 설정에 따라 정확히 다릅니다. 이것은 심지어 장고 관련이 아닙니다. 중요한 것은 STATIC_ROOT 내용이 STATIC_URL에 있습니다.

아파치를 사용하는 경우 디렉토리 URL을 별칭으로 지정한다고 가정 해 보겠습니다.

Alias /static/ /path/to/my/static_root/ 

당신의 nginx를 사용하는 경우, 그것은 것입니다 난 그냥이 경우 당신은 말 그대로 단지에서 파일을 제공하는 정적 응용 프로그램을 설정, 당신은 webfaction를 사용하고 실현

location = /static/ { 
    alias /path/to/my/static_root/; 
} 

같은 정의한 URL의 대상 디렉토리. 정확한 절차를보기 위해 내 webfaction 로그인을 기억하려고 노력하고 있지만 알아 내기가 어렵지 않아야합니다.

업데이트 : webfaction에 기록됩니다. 심볼릭 링크 인 응용 프로그램을 만들 수 있습니다. 쉬운!

/YOUR_STATIC_URL /을 (를) 제공하고/YOUR_STATIC_ROOT /을 (를) 가리키는 심볼 링크 앱을 만듭니다. 끝난!

+0

감사합니다. 완벽하게 작동합니다. 조금만 묻고 미디어 파일은 무엇입니까? 우리는 이것에 대한 python manage.py collectstatic를 가지고 있지 않습니다. – cleliodpaula

+0

일반적으로 미디어 파일은 사용자가 업로드 한 파일보다 많기 때문에 배포시 수집 할 수 없습니다. –