2016-05-14 22 views
2

'heroku local'は静的ファイルを見つけることができませんが、 'python manage.py runserver'は静的ファイルを問題なく見つけ出します。この問題のトラブルシューティングを手伝ってもらえますか?herokuローカルスタティックが見つかりません

settings.pyを読み取ります

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') 
STATIC_URL = '/static/' 
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

私はcollectstatic実行して、静的ファイルがSTATIC_ROOTにコピーされます。

python manage.py collectstatic 

manage.pyのrunserverは」問題なく静的ファイルを検索します。

python manage.py runserver 

'heroku local'は 'not found'という警告を返しますが、

11:52:04 AM web.1 | [19/May/2016 10:52:04] WARNING [django.request:170] Not Found: /static/admin/css/base.css 
11:52:04 AM web.1 | [19/May/2016 10:52:04] WARNING [django.request:170] Not Found: /static/admin/css/base.css 
11:52:04 AM web.1 | [19/May/2016 10:52:04] WARNING [django.request:170] Not Found: /static/admin/css/login.css 
11:52:04 AM web.1 | [19/May/2016 10:52:04] WARNING [django.request:170] Not Found: /static/admin/css/login.css 

ここで何が起こっているのかよく分かりません。 'heroku local'と 'manage.py runserver'の両方に静的ファイルが表示されるはずです。

注: 私はDjangoの== 1.8.2とsettings.pyを使用していますが含まれています

import os 
import dj_database_url 

BASE_DIR = os.path.dirname(os.path.dirname(__file__)) 
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 

SECRET_KEY = 'secretkey' 

DEBUG = True 

ALLOWED_HOSTS = [] 

INSTALLED_APPS = (
    # 'django.contrib.sites', 
    'django.contrib.admin', 
    'registration', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'dbbackup', 
    'listable', 
    'rest_framework', 
    'bootstrap3', 
    'django_crontab', 
) 

ACCOUNT_ACTIVATION_DAYS = 7 # One-week activation window; you may, of course, use a different value. 
REGISTRATION_AUTO_LOGIN = True # Automatically log the user in. 

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'django.middleware.security.SecurityMiddleware', 
) 

ROOT_URLCONF = 'track.urls' 

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'DIRS': [os.path.join(BASE_DIR, 'templates')], 
     'APP_DIRS': True, 
     'OPTIONS': { 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
      ], 
     }, 
    }, 
] 

WSGI_APPLICATION = 'track.wsgi.application' 

LANGUAGE_CODE = 'en-us' 
TIME_ZONE = 'UTC' 
USE_I18N = True 
USE_L10N = True 
USE_TZ = True 

FIXTURE_DIRS = (
    os.path.join(BASE_DIR, 'fixtures'), 
) 

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
MEDIA_URL = 'media/' 

REST_FRAMEWORK = { 
    # Use Django's standard `django.contrib.auth` permissions, 
    # or allow read-only access for unauthenticated users. 
    'DEFAULT_PERMISSION_CLASSES': [ 
     'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly' 
    ], 
    'DEFAULT_PARSER_CLASSES': (
     'rest_framework_xml.parsers.XMLParser', 
    ), 
    'DEFAULT_RENDERER_CLASSES': (
     'rest_framework_xml.renderers.XMLRenderer', 
    ), 
} 

DATABASES = {'default' : dj_database_url.config(default='postgres://testuser:[email protected]:5432/testdb')} 

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'), 
) 

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 

BOOTSTRAP3 = { 
    'include_jquery': True, 
} 

答えて

6

(24時間+後)私の作品解決策:

1)ホワイトノイズの最新の安定版をインストールします(私はホワイトノイズを必要と古い例から働いていた== 2.0.6)

2)あなたはMIDDLEWARE_CLASSESにホワイトノイズを追加してください:

MIDDLEWARE_CLASSES = (
    'whitenoise.middleware.WhiteNoiseMiddleware', 
) 

注:ホワイトノイズを使用しているときミドルウェアクラスに「whitenoise.middleware.WhiteNoiseMiddleware」を追加== 2.0.6は、エラーがスローされます。あなたは最新の安定版(現在はホ​​ワイトニング== 3.1)にアップグレードする必要があります

+0

巨大な巨大なあなたに感謝したいだけ! –

0

を私はこれらの管理ファイルは、Djangoの管理アプリからのものですと仮定するつもりです。あなたのプロジェクトを見ないと、次のトラブルシューティングを行うべき場所を推測しています:

1)django.contrib.adminINSTALLED_APPSにあることを確認してください。

2)DEFAULT_FILE_STORAGEの設定を変更していますか?これは潜在的にSTATICFILES_FINDERSを妨害します。

3)static files settingsのすべてをチェックし、いずれかを上書きする場合は、警告がないことを確認してください。

settings.pyファイル全体を投稿した場合は、問題をデバッグする際の方がはるかに優れています。

+0

@miketheredherringありがとう、はい管理者のファイルは、Djangoの管理アプリからです。はい、django.contrib.adminはINSTALLED_APPSに含まれています。私はDEFAULT_FILE_STORAGEを変更していません。上記のsettings.pyの内容を追加しました。 – Andrew

関連する問題