django - статический файл css 404 ошибка, не загружаемая [дубликат]

Я просто хочу обратиться к деталям, которые чрезвычайно часто ошибаются, в том числе большинством ответов на этой странице. Доступ «по умолчанию» (когда нет модификатора доступа) не всегда совпадает с пакетом-частным. Это зависит от того, что это такое.

  • Типы нечленов (то есть классы, перечисления, интерфейсы и типы аннотаций, не объявленные внутри другого типа) по умолчанию являются закрытыми по пакетам. ( JLS §6.6.1 )
  • Члены класса и конструкторы по умолчанию закрыты по пакетам. ( JLS §6.6.1 )
  • Конструкторы Enum по умолчанию являются закрытыми. (Действительно, enum contructors должны быть закрытыми, и это ошибка, чтобы попытаться сделать их общедоступными или защищенными). Константы Enum являются общедоступными и не допускают спецификатор доступа. Другие члены перечисления по умолчанию закрыты по пакетам. ( JLS §8.9 )
  • Все члены интерфейсов и типы аннотаций по умолчанию являются общедоступными. (Действительно, члены интерфейсов и типы аннотаций должны быть публичными, и это ошибка, чтобы попытаться сделать их частными или защищенными.) ( JLS §9.3 - 9.5 )

47
задан KindOfGuy 9 October 2012 в 23:38
поделиться

8 ответов

Это рабочее решение для доступа к static / media / template в django для окон,

settings.py

import os.path

STATIC_ROOT = ''

STATIC_URL = '/static/'

STATICFILES_DIRS = ( os.path.join('static'), )
74
ответ дан alecxe 28 August 2018 в 06:38
поделиться

Удостоверьтесь, что мультяшка находится в вашем INSTALLED_APPS

4
ответ дан chrisortman 28 August 2018 в 06:38
поделиться

Для меня это оказалось обусловлено установкой debug на false в settings.py. Обходным путем является переход --insecure на runserver, но реальным решением является использование надлежащего веб-сервера для обслуживания статических файлов. Подробнее см. Ответы на этот вопрос .

19
ответ дан Community 28 August 2018 в 06:38
поделиться

Я также застрял в проблеме 404, пока не понял, что Apache заблокировал запросы к статическому каталогу. Я использовал python manage.py collectstatic для копирования всех статических файлов в статический каталог под моим корнем проекта, т. Е. / Var / my / site / static. С

Alias /static /var/my/site/static
<Directory /var/my/site/static>
        Require all granted
</Directory>

в файле /etc/httpd/conf/httpd.conf он работает правильно.

Если ни один из приведенных выше ответов не работает, вы можете рассмотреть возможность проверки конфигурации вашего сервера .

4
ответ дан Darwin 28 August 2018 в 06:38
поделиться

Я предполагаю, что вы используете Django1.3 + здесь.

Сначала вы должны определить еще несколько настроек:

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

STATICFILES_DIRS = [
    path.join(TOP_DIR, 'static'),
]

STATIC_ROOT = path.join(TOP_DIR, 'staticfiles')
STATIC_URL = '/static/'

Это должно помочь вам найти этот каталог.

Кроме того, вы всегда должны обращаться к своим статическим файлам с помощью STATIC URL:

<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.min.css">
2
ответ дан drewman 28 August 2018 в 06:38
поделиться

в Django у вас есть еще одно преимущество для ваших шаблонов, и вы можете связать статику, как это, и, возможно, это ваша проблема!

<script src="{% static 'myapp/bootstrap.min.js' %}"></script>
<link href="{% static 'myapp/bootstrap.css' %}" rel="stylesheet" type="text/css"/>

лучше использовать

{% static 'filename'%}

, а также его легче узнать больше, я ссылаюсь на https://docs.djangoproject.com/en/1.11/ интро / tutorial06 /

2
ответ дан Ebrahim Karimi 28 August 2018 в 06:38
поделиться

из комментариев выше - запустите это

python manage.py findstatic --verbosity 2 css/styles.css

Не найдено подходящего файла для 'css / styles.css'.

Поиск в следующих местах: / Пользователи / yourname / Documents / Workspace / test / staticfiles

Я просто переименовал свою статическую папку в staticfiles, и все было хорошо. (Я нахожусь в osx + django 1.x)

Использование режима небезопасности может не повредить, если вы находитесь в локальном блоке dev, иначе вы все равно можете получить 404 ошибки.

python manage.py runserver --insecure

UPDATE

фактически перекопал в settings.py нашел строку нарушения.

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'staticfiles'),
)
1
ответ дан johndpope 28 August 2018 в 06:38
поделиться

Я просто добавил эквивалент

STATICFILES_DIRS = (
    '/absolute_path_to_project/mealmate/static',
)

, чтобы заставить это работать. Конечно, замените absolute_path_to_project на ваш фактический путь и, если необходимо, добавьте букву диска.

5
ответ дан Seth 28 August 2018 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: