2015-07-05 2 views
2

Приложение django хорошо работает на локальном сервере. Но, когда я развертываю его на Heroku, статические файлы не обслуживаются (получение ошибки 404). Пожалуйста помоги!Статические файлы Django, не работающие на Heroku

from django.conf.urls import patterns, include, url 
from django.contrib import admin 
from django.conf.urls.static import static 
from django.conf import settings 

urlpatterns = patterns('', 
     url(r'^$', 'product.views.home', name='home'), 
     url(r'^admin/', include(admin.site.urls)), 

    ) 
if settings.DEBUG: 
     urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT) 
     urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

статические файлы настройки:

TEMPLATE_DIRS = (
     os.path.join(BASE_DIR, 'templates'), 
) 

    STATIC_URL = '/static/' 

    MEDIA_URL = '/media/' 

    MEDIA_ROOT = os.path.join(BASE_DIR, "static", "media") 

    STATIC_ROOT = os.path.join(BASE_DIR, "static", "static_root") 

    STATICFILES_DIRS = (
     os.path.join(BASE_DIR, "static", "static_dirs"), 
) 

WSGI файл -

import os 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "acton.settings") 

    from django.core.wsgi import get_wsgi_application 
    application = get_wsgi_application() 

    try: 
     from dj_static import Cling 
     application = Cling(get_wsgi_application()) 

    except: 
     pass 

ответ

1


Это моя установка для статических файлов для развертывания на Heroku.

Надеюсь, что это поможет:

импорт ОС
base_dir = os.path.dirname (os.path.abspath (файл))
STATIC_ROOT = 'staticfiles'
STATIC_URL =»/статический /»
MEDIA_ROOT = os.path.join (project_path, "медиа")
mEDIA_URL = "/ медиа /"
STATICFILES_DIRS = (
os.path.join (base_dir, 'статический'),
)

+0

Тем не менее, имеющие один и тот же вопрос! – Deepak

+0

Можете ли вы сказать, получаете ли вы какую-либо ошибку во время развертывания, на вашем терминале относительно запуска команды python manage.py collectstatic? –

+0

Нет, когда я запускаю «heroku run python manage.py collectstatic» - я не вижу ошибки, собираются статические файлы. Что за странные файлы css для администратора на герой работает. У меня только передняя часть у меня проблемы. – Deepak

1

Ваш setting.py файл неправильно configured.Static и медиа-файлы должны быть

STATICFILES_DIRS = os.path.join(BASE_DIR, 'static') 
MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
+0

С помощью параметров settings.py статические файлы хорошо работают на сервере разработки. Его только на сервере производства Heroku у меня проблема. Теперь, когда я изменяю settings.py в соответствии с вашей рекомендацией, мои статические файлы не работают на сервере разработки! – Deepak

+0

Проверьте http://stackoverflow.com/questions/21141315/django-static-files-on-heroku и http://stackoverflow.com/questions/21141315/django-static-files-on-heroku – vijayscode

+0

Я проверил все эти вопросы и безуспешно пытались их рекомендации. Статические файлы успешно собраны на Heroku, но не отображаются. – Deepak

1

Для тех, кто еще что приходит для меня это означало, что у меня отсутствовала конфигурация whitenoise из моего файла wsgi.py.

В частности, следующее пропускал из моего wsgi.py файла:

from whitenoise.django import DjangoWhiteNoise application = DjangoWhiteNoise(application)

Docs здесь: http://whitenoise.evans.io/en/stable/

Смежные вопросы