Статические файлы Django вне приложения не загружаются

Мои статические файлы будут загружаться нормально, если они расположены внутри приложения, но если они расположены вне приложения, например, в каталоге моего проекта, они не будут загружаться. Я знаю, что этот вопрос задавали миллион раз, но я не вижу, что нужно изменить в моем коде. Это Джанго 1.9

структура папок

/site
├── manage.py
├── project
│   ├── __init__.py
│   ├── settings.py
│   ├── static
│   │   └── main
│   │       ├── css
│   │       ├── fonts
│   │       ├── img
│   │       ├── libs
│   │       └── scripts
│   ├── templates
│   ├── urls.py
│   └── wsgi.py
├── app1
├── app2
└── app3

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rooms',
    'events',
    'activities',
] 

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIR = os.path.join(BASE_DIR, "static")

index.html

{% load staticfiles %}
    <link rel="stylesheet" type="text/css" href="{% static "main/css/bootstrap.css" %}">
    <link rel="stylesheet" type="text/css" href="{% static "main/libs/animate.min.css" %}">

person Grant Jordan    schedule 14.01.2016    source источник
comment
Я думаю, что есть орфографическая ошибка. Это должно быть STATICFILES_DIRS, а не STATICFILES_DIR   -  person python    schedule 14.01.2016
comment
@python Это написание, кажется, в любом случае не имеет значения. Я тестировал оба. Однако, спасибо   -  person Grant Jordan    schedule 14.01.2016
comment
@python Я ошибся, это должно было быть STATICFILES_DIRS, но я также забыл запятую после os.path.join(BASE_DIR, "static") Еще раз спасибо!   -  person Grant Jordan    schedule 15.01.2016
comment
Я добавил ответ. Пожалуйста, примите это, если это было полезно.   -  person python    schedule 15.01.2016


Ответы (2)


Я думаю, что есть орфографическая ошибка. Это должно быть STATICFILES_DIRS, а не STATICFILES_DIR

person python    schedule 15.01.2016
comment
Спасибо за это. Было очень трудно заставить это работать, в основном потому, что STATICFILES_DIRS нужно было писать точно. У меня также была другая ошибка The STATICFILES_DIRS setting is not a tuple or list, которая разрешается добавлением [] вокруг выражения. - person jake wong; 11.08.2018

Вы поместили свой статический каталог в папку проекта, если вы хотите, чтобы он был там (хотя и не так), вы должны изменить:

STATICFILES_DIR = os.path.join(BASE_DIR, "static")

to:

STATICFILES_DIR = os.path.join(BASE_DIR, "project/static")

** Я думаю, что лучше разместить вашу статическую папку вне папки проекта (если вы хотите использовать глобальные статические файлы) **

person P3zhman    schedule 14.01.2016
comment
Спасибо за предложение не помещать статические файлы в папку проекта. Я хочу, чтобы эти файлы были глобальными, поэтому я переместил их в корень сайта. К сожалению, после внесения этого изменения мои статические файлы все еще не загружаются. - person Grant Jordan; 14.01.2016