Настройка статических файлов в Heroku не работает локально для Django - PullRequest
0 голосов
/ 10 мая 2019

Я настраиваю веб-приложение с Django 2.2 в Heroku, и я смог успешно развернуть его в рабочей среде, но приложение не загружает файлы css локально каждый раз, когда я пытаюсь запустить heroku local web.

Вот так я настраиваю конфигурацию моих файлов в моем приложении Django.

- src
  - live-static
       - media-root
       - static-root         
  - main_app
       - urls.py
       - wsgi.py
       - __init__.py
       - settings
           - __init__.py
           - base.py
           - local.py
           - production.py
  - pages
        - __init__.py
        - admin.py
        - apps.py
        - models.py
        - tests.py
        - views.py
        - templates
           - main_app
             - home.html    
  - templates
       - base.html
  - static
       - main_app
           - css
             -cover.css
           - img
             -myimage.jpg
       - admin
           - css
           - img
           - js

Следующий код представляет собой фрагмент конфигурации из производственных и локальных файлов:

production.py

STATIC_URL = '/static/'

STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)

STATIC_ROOT = os.path.join(BASE_DIR, 'live-static', 'static-root')

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'


local.py


STATIC_URL = '/static/'

STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)

STATIC_ROOT = os.path.join(BASE_DIR, 'live-static', 'static-root')

Мои файлы css и jpg не отображаются локально, но отображаются в рабочей среде.

base.html
{% load static %}


 <link href="{% static 'main_app/css/cover.css' %}" rel="stylesheet">
 <img src="{% static 'main_app/img/myimage.jpg' %}" >

Я ожидаю, что при запуске heroku local web я смогу увидеть отсканированные css и изображения.

Ответы [ 2 ]

0 голосов
/ 30 мая 2019

Я обнаружил, что в файле local.py отсутствует промежуточное программное обеспечение whitenoise.middleware.WhiteNoiseMiddleware, которое является обязательным для визуализации статических файлов в Django.

0 голосов
/ 10 мая 2019

Я не совсем уверен насчет ответа на этот вопрос. Но почему бы вам не попробовать набрать heroku local:run python manage.py collectstatic и посмотреть, отобразит ли он вашу страницу.

Извините, что опубликовал это как ответ, а не как комментарий (у вас нет высокой репутации).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...