/ / Django статични файлове не работят на Heroku - python, django, heroku

Статичните файлове на Django не работят върху Heroku - python, django, heroku

Приложението ми django работи добре на локален сървър. Но когато го разгърна на Heroku, статичните файлове не се обслужват (получаване на грешка 404). Моля помогнете!

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 за отговор № 1


Това е моята настройка за статични файлове за разгръщане на Heroku.

Надявам се, че ще помогне:

внос о
BASE_DIR = os.path.dirname (os.path.abspath (досие))
STATIC_ROOT = "статични файлове"
STATIC_URL = "/ статичен /"
MEDIA_ROOT = os.path.join (PROJECT_PATH, „медия“)
MEDIA_URL = "/ медия /"
STATICFILES_DIRS = (
os.path.join (BASE_DIR, "статичен"),
)


1 за отговор № 2

Вашият файл за настройка.py е неправилно конфигуриран. Трябва да бъдат статични и медийни файлове

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

1 за отговор № 3

За всеки друг, който се сблъсква с този проблем, за мен беше, че ми липсва конфигурацията на белитеноза от моя файл wsgi.py.

Конкретно следното липсваше от моя wsgi.py файл:

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

Документите са тук: http://whitenoise.evans.io/en/stable/