Django статические файлы получают 404 - PullRequest
0 голосов
/ 26 июня 2018

Здравствуйте и спасибо за вашу помощь заранее. Я понимаю, что этот вопрос был задан и получен ответ в другом месте, но ни один из этих ответов не работает для меня.

Я новичок в python и django и унаследовал небольшое веб-приложение. У меня есть среда разработки, работающая на моем компьютере с почти неизмененным кодом, единственными изменениями являются имя базы данных и пароль, указывающие на мой локальный сервер mySQL.

Однако, когда я запускаю приложение, все работает, кроме статических файлов. Я получаю 404 с в консоли, когда пытаюсь получить статические файлы, а методы js в статическом режиме появляются неопределенными.

BASE_PATH, STATIC_URL, STATIC_ROOT, STATICFILES_DIR, STATICFILES_FINDERS не изменились из текущего рабочего кода, и, насколько могут судить мои глаза новичка, настроены правильно в соответствии с документацией и несколькими ответами на этот вопрос.

Может ли что-то отличаться от того, что я установил на моем компьютере, что могло бы быть причиной этого? Почему иначе было бы иначе между производством и моей локальной копией? Есть ли что-то, что я должен запустить, чтобы заставить это работать?

Некоторые настройки в settings.py:

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

INSTALLED_APPS = [
    'biogen.apps.BiogenConfig',
    'msm.apps.MsmConfig',
    'tracker.apps.TrackerConfig',
    'accounts.apps.AccountsConfig',
    'process_manager.apps.ProcessManagerConfig',
    'process.apps.ProcessConfig',
    'pfd.apps.PfdConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'djangobower',
    'rest_framework',
    'crispy_forms',
    'django_summernote'
]

STATIC_URL = '/static/'

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

STATICFILES_DIR = [
    os.path.join(BASE_DIR, 'components/static'),
]

STATICFILES_FINDERS = [
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    'djangobower.finders.BowerFinder',
]

Входит в шаблоны:

{% load static %}

Еще раз спасибо заранее ...

Ответы [ 3 ]

0 голосов
/ 26 июня 2018

Попробуйте запустить

python manage.py collectstatic
0 голосов
/ 28 июня 2018

Оказывается, мне нужно было загрузить все статические файлы из Bower. Все эти файлы присутствуют в производстве, но по какой-то причине не находятся в разработке!

0 голосов
/ 26 июня 2018

Представьте что-то вроде этого:

Считайте, что у вас есть в корневом каталоге вашего проекта static_files в качестве источника и static в качестве места назначения ваших статических файлов - вы изначально размещаете и редактируете их в static_files (или любых других ваших файлах):

STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static_files'),
                    os.path.join(BASE_DIR, 'static_files/js'),
                    os.path.join(BASE_DIR, 'static_files/html'),)
STATIC_ROOT = os.path.join(BASE_DIR, 'static', )
STATIC_URL = '/static/'

Обратите внимание, это STATICFILES_DIRS, а не STATICFILES_DIR

Затем запустите

python manage.py collectstatic 

для сбора статических файлов от static_files до static

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