2014-08-31 3 views
2

저는 Python에서 장고를 사용하여 응용 프로그램을 개발했으며 방금 heroku 서버에 배포했습니다.Heroku Django 앱 정적 파일이 제공되지 않습니다 (오류 OSError : [Errno 2])

내 settings.py 파일이 내용이 :

PROJECT_PATH = os.path.dirname(os.path.abspath(__file__)) 
STATIC_ROOT = 'staticfiles' 
STATIC_URL = '/static/' 

STATICFILES_DIRS = (
     os.path.join(PROJECT_PATH, 'static'), 
) 


    STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    #'django.contrib.staticfiles.finders.DefaultStorageFinder', 
    ) 

나는이 명령을 실행하면 템플릿

OSError: [Errno 2] No such file or directory: '/app/nameOfApp/static' 

의 URL : 나는 다음과 같은 오류가

heroku run python manage.py collectstatic --noinput 

을 이전에 저장된 파일 (예 : CSS 및 자바 스크립트 파일)에이 URL이있는 템플릿 파일 :

<script type="text/javascript" src="{% static "javascripts/jquery.min.js" %}" ></script> 

가 제대로 제공되지만 관리자 패널을 통해 업로드 새 파일, 즉 새로운 업로드 된 파일은 같은에 보관해야 정적 폴더에있는 이전 파일과 같은 위치에 저장되지 않습니다

질문 : 그렇다면 제대로 설정되도록 settings.py 파일을 어떻게 수정해야합니까?

+0

파일을 업로드 한 트릭을 할 것입니다 urls.py에서이 줄을 추가하여

? 미디어 설정은 어떻습니까? –

+0

@rajasimon MEDIA_ROOT 및 MEDIA_URL은 비워두고 무엇을 넣어야합니까? btw 그들은 코드를 로컬에서 실행할 때도 비어 있었지만 로컬에서 작업하는 데 사용되었습니다. – Siavosh

답변

2

미디어 루트는 사용자가 업로드 한 파일을 저장할 디렉토리에 대한 절대 파일 시스템 경로입니다.

Example: "/var/www/example.com/media/" 

미디어 URL은 미디어 루트에서 제공되는 미디어 파일을 처리하기위한 것입니다.

다른 중요하지 않은 것은 you will need to configure these files to be served in both development and production입니다.

from django.conf import settings 
from django.conf.urls.static import static 

urlpatterns = [ 
    # ... the rest of your URLconf goes here ... 
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
+0

내 사진 url에 src 같은 src가 있습니다. src = "/ static/{{image.image.url}}"모델에 속성이 있습니다. 이미지 = models.ImageField (upload_to = "images/subFolder")와 같이 작동하도록하려면 MEDIA_ROOT 및 MEDIA_URL의 내용이 무엇이되어야합니까? – Siavosh

+0

MEDIA_URL = '/ media /'로 설정하고 MEDIA_ROOT = os.path.join (PACKAGE_ROOT, "site_media")으로 설정하십시오. –