2017-02-07 3 views
0

내 애플 내 로컬 정상적으로 실행 장고 정적 수집하여 내가 오류없이Heroku가 오류가 1.10

python manage.py collectstatic --noinput 

를 실행할 수 있습니다.

$ python manage.py collectstatic --noinput 
    Traceback (most recent call last): 
     File "manage.py", line 22, in <module> 
     execute_from_command_line(sys.argv) 
     File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line 
     utility.execute() 
     File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 359, in execute 
     self.fetch_command(subcommand).run_from_argv(self.argv) 
     File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 294, in run_from_argv 
     self.execute(*args, **cmd_options) 
     File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 345, in execute 
     output = self.handle(*args, **options) 
     File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 193, in handle 
     collected = self.collect() 
     File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 115, in collect 
     for path, storage in finder.list(self.ignore_patterns): 
     File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/finders.py", line 112, in list 
     for path in utils.get_files(storage, ignore_patterns): 
     File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/staticfiles/utils.py", line 28, in get_files 
     directories, files = storage.listdir(location) 
     File "/app/.heroku/python/lib/python2.7/site-packages/django/core/files/storage.py", line 399, in listdir 
     for entry in os.listdir(path): 
    OSError: [Errno 2] No such file or directory: '/tmp/build_732715d9b29ba88f9eb56ca3d7e722de/MY_REAL_APP_NAME/static' 

을 그래서 내 빌드 거부 : 빌드 프로세스의 마지막에 Heroku가에 밀어 그러나 나는 다음과 같은 오류가 발생합니다. OSError: [Errno 2] No such file or directory: '/tmp/MakeCalls/Static'을 보았지만 내 STATICFILES_DIRS을 제거하면 앱이 배포되지만 모든 정적 애셋에는 404 오류가 발생합니다. Heroku exactly에 대한 지침을 따르고 있지만 작동하지 않는 것 같습니다. 내가 heroku local web을 실행할 때

import os 
from django.core.wsgi import get_wsgi_application 
from whitenoise.django import DjangoWhiteNoise 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "fortuno.settings") 
application = get_wsgi_application() 
application = DjangoWhiteNoise(application) 

이 모두 내 로컬에 확인 작업을하는 것, 그리고 :

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles') 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'), 
) 
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 
ALLOWED_HOSTS = ['*'] 

wsgi.py 파일을 내 settings.py 파일의 관련 부분은 다음과 같습니다. 정적 오류를 일으키는 원인은 무엇입니까?

settings.py

import os 
def root(folder): 
    return os.path.join(os.path.abspath(os.path.dirname(__file__)), '..',folder) 

장고

IN

+0

당신이 "정적"폴더를 생성나요 Django 프로젝트 폴더 안에 있습니까? 그렇지 않은 경우, 빈 파일로 작성하십시오. Heroku 문서의 샘플 저장소와이 빈 [file] (https://github.com/heroku/python-getting-started/tree/master/gettingstarted/static)의 경로를 확인하십시오. –

+0

그래, 알겠습니다. 내 부트 스트랩 파일과 이미지로 가득 차 있습니다. – jjones2000

+0

프로젝트 디렉토리 구조를 표시 할 수 있습니까? –

답변

1

STATIC 파일 처리가 프로젝트 루트 내부

MEDIA_ROOT = root('media') 
MEDIA_URL = '/media/' 
STATIC_ROOT = root('staticstorage') 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    root('static'), 
) 

프로젝트 루트 urls.py를 정적/미디어 폴더를 만들고 (프로젝트/프로젝트 /urls.py) [장고 버전 1.10]이 버전을 사용하지 않을 경우 참고하십시오.

from django.conf import settings 
from django.conf.urls.static import static 
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
이 프로젝트 내부 staticstorage 디렉토리를 생성 않다면 로컬 컴퓨터에서 실행 python manage.py collectstatic이,이 .... 앞서 배포와 이동을 끝낼

메이크업 ........