Я просто хочу обратиться к деталям, которые чрезвычайно часто ошибаются, в том числе большинством ответов на этой странице. Доступ «по умолчанию» (когда нет модификатора доступа) не всегда совпадает с пакетом-частным. Это зависит от того, что это такое.
Это рабочее решение для доступа к static / media / template в django для окон,
settings.py
import os.path
STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = ( os.path.join('static'), )
Удостоверьтесь, что мультяшка находится в вашем INSTALLED_APPS
Для меня это оказалось обусловлено установкой debug на false в settings.py
. Обходным путем является переход --insecure
на runserver
, но реальным решением является использование надлежащего веб-сервера для обслуживания статических файлов. Подробнее см. Ответы на этот вопрос .
Я также застрял в проблеме 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 он работает правильно.
Если ни один из приведенных выше ответов не работает, вы можете рассмотреть возможность проверки конфигурации вашего сервера .
Я предполагаю, что вы используете 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">
в Django у вас есть еще одно преимущество для ваших шаблонов, и вы можете связать статику, как это, и, возможно, это ваша проблема!
<script src="{% static 'myapp/bootstrap.min.js' %}"></script>
<link href="{% static 'myapp/bootstrap.css' %}" rel="stylesheet" type="text/css"/>
лучше использовать
{% static 'filename'%}
blockquote>, а также его легче узнать больше, я ссылаюсь на https://docs.djangoproject.com/en/1.11/ интро / tutorial06 /
из комментариев выше - запустите это
python manage.py findstatic --verbosity 2 css/styles.css
Не найдено подходящего файла для 'css / styles.css'.
Поиск в следующих местах: / Пользователи / yourname / Documents / Workspace / test / staticfiles
blockquote>Я просто переименовал свою статическую папку в staticfiles, и все было хорошо. (Я нахожусь в osx + django 1.x)
Использование режима небезопасности может не повредить, если вы находитесь в локальном блоке dev, иначе вы все равно можете получить 404 ошибки.
python manage.py runserver --insecure
UPDATE
фактически перекопал в settings.py нашел строку нарушения.
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'staticfiles'), )
Я просто добавил эквивалент
STATICFILES_DIRS = (
'/absolute_path_to_project/mealmate/static',
)
, чтобы заставить это работать. Конечно, замените absolute_path_to_project
на ваш фактический путь и, если необходимо, добавьте букву диска.