2016-09-19 2 views
0

Я новичок в Django, и я пытаюсь найти способ загрузить мои файлы css в свой проект. Вот мой settings.py файлSTATIC_ROOT не находит мои статические файлы

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage' 
STATIC_ROOT = os.path.join(BASE_DIR, 'static') 
STATIC_URL = '/static/' 

STATICFILES_FINDERS = (
    "django.contrib.staticfiles.finders.FileSystemFinder", 
    #"django.contrib.staticfiles.finders.AppDirectoriesFinder" 
) 

AUTHENTICATION_BACKENDS = (
    # Uncomment the following to make Django tests pass: 
    'django.contrib.auth.backends.ModelBackend', 
    'allauth.account.auth_backends.AuthenticationBackend', 
) 

Я получил способ сделать это с помощью переменной STATICFILES_DIRS, но он не будет работать вместе с переменными других похожести.

Что мне делать, чтобы исправить это?

EXTRA INFORMATIONS:

Мои base.html файл статические файлы называют:

<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}" /> 
<link rel="stylesheet" type="text/css" href="{% static 'icomoon_style.css' %}" /> 
<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap.min.css' %}" /> 

Мои папки удаление:

  • OntoLogica (основная папка)
    • Ontologica (папка проекта)
    • статическая папка
      • icomoon_style.css
      • style.css
      • папку CSS
      • bootstrap.min.css

ответ

0

Я нашел способ, который решил мой случай.Он был найден в этом месте: https://devcenter.heroku.com/articles/django-assets

Что я делать:

Добавьте строку PROJECT_ROOT и изменение линии STATIC_ROOT к:

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles') 

С этим я мог бы добавить строку STATICFILES_DIRS без каких-либо проблем:

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

Это сработало отлично для меня, и я надеюсь, что это поможет кому-то еще. Спасибо

0

установить статический путь в правильном пути , Получите идею из моего проекта.

settings.py

import os 
import sys 
from os.path import abspath, dirname, join 

sys.path.append(join(dirname(__file__), "../applications")) 
PROJECT_ROOT = abspath(dirname(__file__)) 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
MEDIA_ROOT = join(PROJECT_ROOT, '../media/') 
MEDIA_URL = '/media/' 
STATIC_ROOT = join(PROJECT_ROOT, '../static/') 
STATIC_URL = '/static/' 

Моя структура файлов:

Main directory 
       project dir 
         settings.py 
         urls.py 
       media 
       static folder. 
+0

Ваше решение не работает. Все еще получаю 404 в моих статических файлах. –

+0

http://stackoverflow.com/questions/11033571/using-static-files-with-the-django-virtual-server?rq=1 это поможет вам, если вы обнаружите, что это правильный PLZ тик это правильно. – Sagar

+0

На самом деле я нашел ответ ... Собираюсь опубликовать это в ближайшее время ... Но я ценю ваше внимание и помощь. Благодаря! –

0

Как говорится в разделе "Предупреждение" в docs

Это [STATIC_ROOT] должно быть первоначально пустой каталог назначения для сбора ваших статических файлов из их постоянных местоположений в один каталог для удобства развертывания; это не место для хранения ваших статических файлов навсегда.

Поэтому вы должны использовать STATICFILES_DIRS, чтобы указать на ваши статические файлы.

И, наконец, убедитесь, что вы используете {% load staticfiles %} в своих шаблонах, чтобы загрузить ваши статические файлы.

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