2014-01-16 36 views
0

我正在使用django,並試圖將我的應用部署到heroku。Django管理模板在生產中被破壞

所有在本地工作沒有任何問題(甚至DEBUG = False),但是當部署到heroku時,管理模板在DEBUG = False時不顯示。

我跟着畢業論文指導來配置我的settings.py:https://devcenter.heroku.com/articles/django-assets

這裏是我的Procfile:

web: gunicorn bourse_logements.wsgi -b 0.0.0.0:$PORT 

隨意詢問是否需要宇我的settings.py的一些地方,我會粘貼它們

任何幫助,將不勝感激

編輯: 這裏是我的settings.py: https://gist.github.com/e-goz/62f812ab1fa8f8268f94

+0

你可以粘貼你的整個settings.py嗎? –

+0

「模板壞了」是什麼意思?瀏覽器返回404?無法打開管理頁面?或只是未能加載資產? –

+0

@DavidW。 ,它完成了 – egoz

回答

0

你確定你沒有的.gitignore模板夾?

+1

基本檢查有時是最好的,該文件夾不被git跟蹤... – egoz

0

*添加此行到您的setting.py *

ADMIN_MEDIA_PREFIX = '/static/admin/' 

你也必須複製所有管理CSS和JavaScript到您的靜態路徑(靜態文件夾中) 像靜態/管理/「你的靜態文件」

+1

ADMIN_MEDIA_PREFIX已棄用因爲Django 1.4和人應該運行'collectstatic'而不是手動複製文件 –

+0

你能否讓我知道Django版本? –

+0

如果您使用django> = 1.5,則必須使用./ manage.py collectstatic。 –

0

你可以嘗試這個設置,根據你在setting.py上的配置。

from unipath import Path 
PROJECT_DIR = Path(__file__).ancestor(3) 
PROJECT_ROOT = Path(__file__).ancestor(2) 
sys.path.insert(0, Path(PROJECT_ROOT, 'apps')) 
MEDIA_ROOT = PROJECT_DIR.child("media") 
MEDIA_URL = '/media/' 
STATIC_ROOT = PROJECT_DIR.child("collected_static") 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    PROJECT_DIR.child("static"), 
) 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
# 'django.contrib.staticfiles.finders.DefaultStorageFinder', 
) 
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader', 
    'django.template.loaders.app_directories.Loader', 
    #'django.template.loaders.eggs.Loader', 
) 

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware', 
) 
TEMPLATE_DIRS = (
    Path(PROJECT_ROOT, 'templates'), 
) 
INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'django.contrib.admin', 
    'django.contrib.flatpages', 
) 

#Heroku的具體設置

import dj_database_url 
DATABASES['default'] = dj_database_url.config() 

# Honor the 'X-Forwarded-Proto' header for request.is_secure() 
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') 

# Allow all host headers 
ALLOWED_HOSTS = ['*'] 

#您也可以嘗試在url.py

if settings.LOCAL_DEV: 
    baseurlregex = r'^media/(?P<path>.*)$' 
    urlpatterns += patterns('', 
     (baseurlregex, 'django.views.static.serve', 
     {'document_root': settings.MEDIA_ROOT}), 
    ) 
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns 
    urlpatterns += staticfiles_urlpatterns()