2015-12-27 4 views
0

Я пытаюсь найти способ, как сообщить Django, где хранятся файлы static, такие как css. Проблема в том, что он не может найти папку static. Я уже установил файл settings.py, но это не помогло.Django не может найти css (статическая папка)

SETTINGS.PY:

STATIC_URL = '/static/' 

INSTALLED_APPS = (
    ... 
    'django.contrib.staticfiles', 
) 

base.html:

... 
... 

<title>Rozcestník</title> 

<!-- Bootstrap core CSS --> 
    {% load static %} 
    <link href="{% static "css/bootstrap.min.css" %}" rel="stylesheet"> 
... 

ПРОЕКТА СТРУКТУРА: enter image description here

Где проблема?

ответ

1

Я думаю, вы не использовали «Соберите статическую» действие.

В вашей оболочке/CMD запустить: python manage.py collectstatic


Если это не решит вашу проблему опубликовать сообщение об ошибке вы получаете.

+0

Спасибо Amit, когда я пытаюсь запустить команду, он возвращает эту ошибку: поднять ImproperlyConfigured («Вы используете приложение staticfiles» django.core.exceptions.ImproperlyConfigured: Вы с помощью staticfiles приложения Wi thout установив параметр STATIC_ROOT в путь к файловой системе. –

+0

Чтобы быть ясным: я копирую другую веб-страницу, которую я сделал раньше, и она работала таким образом, и я думаю, что не установил параметр STATIC_ROOT, потому что я не могу найти что-либо по имени STATIC_ROOT в settings.py (в предыдущей сети). –

+0

Решение довольно просто, вам нужно добавить строку в свои settings.py для STATIC_ROOT. , например: '' 'STATIC_ROOT = os.path.join (os.path.dirname (base_dir), "static_in_env", "static_root")' '' Примечание оно должно соответствовать вашей структуры приложения. это видео может дать вам некоторое представление об этом: https://youtu.be/8cupCFknL4Q?list=PLEsfXFp6DpzRcd-q4vR5qAgOZUuz8041S –

1

Мне не нравится ваш каталог (структура).

Если папка «Интернет» - это приложение, а «dedo» - это папка с настройками, то вы не можете иметь папки «статические» и «шаблоны» внутри папки вашего приложения.

Это Шоуда быть:

dedo 
    __init__.py 
    settings.py 
    urls.py 
    views.py 
static 
    css 
    bootstrap.min.css 
templates 
    base.html 
    index.html 
web 
    migrations 
    __init__.py 
    admin.py 
    models.py 
    tests.py 
    views.py 
db.sqlite3 
manage.py 

И в вашем setttings.py вам нужно написать следующее:

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

STATIC_URL = доступ через браузер для ваших статических файлов

STATICFILES_DIRS = где Django будет искать статические файлы

ВНИМАНИЕ:

STATIC_ROOT = используется ТОЛЬКО если вы собираетесь развернуть веб-приложение, с помощью соответствующего веб-сервера (Nginx, Apache, ...) с WSGI (gunicorn, modwsgi, ...)

«python manage.py collectstatic» или «python3.X manage.py collectstatic» - это команды для копирования ваших статических файлов из STATICFILES_DIRS (плюс статические файлы для/admin /) в STATIC_ROOT, что означает, что STATIC_ROOT не должен быть одинаковым как STATICFILES_DIRS.

Смежные вопросы