404 Ошибка для django, обслуживающего статические файлы.Как настроить django для обслуживания статических файлов? - PullRequest
0 голосов
/ 28 сентября 2018

Файл Settings.py в каталоге проекта:

Я уже добавил следующее:

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

-> в шаблоне

<script src="{% static "validateurl/home.js" %}"></script>

У меня есть каталог static в каталоге проекта.home.js находится в каталоге validateurl в каталоге static .

Ссылаясь на файл JS, используя в html-файле шаблона следующее:

enter image description here

Пожалуйста, сообщите, что мне здесь не хватает.

Ошибки ниже:

enter image description here

1 Ответ

0 голосов
/ 28 сентября 2018

Ниже приведены инструкции по настройке приложения django для обслуживания статических файлов для local разработки.

Значение по умолчанию STATIC_ROOT - None, поэтому вы должны указать это в настройках.Убедитесь, что у вас есть что-то подобное в вашем файле settings.py. Это сообщает вашему веб-серверу, где искать и обслуживать статический файл, сопоставленный с URL-адресом.

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

Во-вторых, также укажите переменную STATIC_URL, так как она также по умолчанию равна none,следующего должно хватить.Это будет использоваться для настройки urlpattern.

STATIC_URL = '/static/'

Вам необходим шаблон URL, чтобы ваш сервер знал, какой URL соответствует статическим файлам

from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Укажите переменную STATICFILES_DIRS внастройки.Чтобы менеджер сбора статических данных знал, где найти статические данные и поместил их в STATIC_ROOTЭто может быть массив или кортеж элементов в разных каталогах.Это может быть пустым, если у вас нет дополнительных каталогов

STATICFILES_DIRS =  (os.path.join(BASE_DIR, 'pathtohomejsdirectory/'),)

Наконец, убедитесь, что вы запустили python manage.py collectstatic Это копирует все файлы, указанные в STATICFILES_DIRS, в каталог / static / (STATIC_ROOT) для обслуживанияДжанго.

На production вы хотите, чтобы ваш веб-сервер / обратный прокси-сервер говорил nginx или apache для обслуживания файлов.Смотрите здесь документацию Django здесь

...