2012-11-25 3 views
1

heroku (cedar stack)에 응용 프로그램을 배포했는데 며칠 전까지 정상적으로 작동했습니다. 정적 파일이 제공되지 않는 것으로 나타 났을 때 ('cancelled'코드와 함께 나타납니다.). 다음으로 주목할 점은 내 프로젝트에 갑자기 manage.py : admin /, css /, img/및 js /와 같은 수준의 새 폴더가 있다는 것입니다. 나는 adminin을 전혀 만들지 않았다. buildin django admin 사이트를 사용하고 didnt은 어떤 식 으로든 그것을 수정한다. 나는 정적 아래/프로젝트 내에서 CSS, img 및 js 폴더를 만들었고 그 내용은 모든 내용과 함께 여전히 거기에있었습니다. 그것은 정적/manage.py 레벨에 복사 된 모든 폴더와 같습니다.Heroku django - messed up 프로젝트 구조

heroku run ls -l을 실행하면 heroku가 변경됩니다. 이러한 변경으로 인해 정적 파일을 제공하는 데 문제가 있다고 의심됩니다.

heroku run python manage.py collectstatic --noinput 

은 모든 파일을 복사해도 문제가 없음을 보여줍니다.

내 정적 DIRS 설정 :

STATIC_ROOT = '' 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static". 
    # Always use forward slashes, even on Windows. 
    # Don't forget to use absolute paths, not relative paths. 
    os.path.join(os.path.dirname(__file__), 'static'), 
) 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
# 'django.contrib.staticfiles.finders.DefaultStorageFinder', 
) 

아직 S3를 사용하지 말아.

어떻게 파일을 제거 할 수 있습니까? 그 dirs가 나타나는 원인은 무엇입니까?

답변

1

Django 응용 프로그램이 Heroku에 배포되면 collectstatic이 자동으로 실행됩니다 (Heroku docs). 그러면 설치된 앱에서 모든 정적 자산 (django.contrib.admin 포함)이 수집되어 STATIC_ROOT에 복사됩니다.

STATIC_ROOT 설정을 확인하십시오. 아마도 올바르게 설정되지 않았습니다.

Here is a tutorial 정적 파일과 함께 S3 사용시.

+0

귀하의 조언에 따라 문제를 해결할 수있게 해줘서 고맙습니다.) 내가 어떻게 작동하게 만들 었는지 명확히하기 위해 해결책을 다른 답으로 게시했습니다. – Neara

1

post을 바탕으로 나는이 모든 엉망이 DEBUG를 FALSE로 바꾸어서 발생했다는 것을 알게되었습니다. Ohads의 충고에 따라 STATIC_ROOT 설정을 확인했는데 볼 수 있듯이 설정되지 않았습니다. 추가

SETTINGS_PATH = os.path.abspath(os.path.dirname(__file__)) 
STATIC_ROOT = os.path.abspath(SETTINGS_PATH+'/static/') 
STATIC_URL = '/static/' 
STATICFILES_DIRS =() 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
# 'django.contrib.staticfiles.finders.DefaultStorageFinder', 
) 

: 사람들은 내 고정 설정입니다 myapp와의

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

/urls.py 내 문제를 해결했다.