Django: CSS не работает

Я все еще новичок в django, и у меня возникли проблемы с моей работой CSS.
Я проследил направление от ссылки:Django статическая ссылка учебник, при обработке статических файлов. Но это все еще не работает.

настройки

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/home/media/media.lawrence.com/static/"
STATIC_ROOT = '/Users/a9austin/Development/sites/AlphaSocks/src/static_root/'

# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'

# Additional locations of static files
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
'/Users/a9austin/Development/sites/AlphaSocks/src/staticfiles'

)

посмотреть

#from django.http import HttpResponse
from django.shortcuts import render_to_response


def index(request):
return render_to_response('index.html')


.HTML-код
<link rel="stylesheet" href="{{STATIC_URL}}css/style.css" type="text/css" media="screen" >

и организации каталогов

src - >staticfiles - >css - >стиль.в CSS



Огромное спасибо, ваша помощь и время очень ценится!

2 ответов


для Django для обслуживания статических файлов, вы должны убедиться, что у вас есть несколько настроек.

STATIC_URL

этот параметр указывает, какой url должен сопоставляться статическим файлам. Вы уже это сделали.

STATICFILES_DIRS

это указывает все папки в вашей системе, где Django должен искать статические файлы. Идея в том, что у вас может быть несколько приложений в вашем проекте, и каждое приложение может потребоваться другой набор статических файлов. Таким образом, для организационных целей каждое приложение может содержать где он будет хранить только статические файлы. Итак, у Django должен быть способ узнать, где находятся эти каталоги. Вот для чего эта настройка.

STATIC_ROOT

этот параметр указывает, где Django будет копировать все статические файлы, а не где статические файлы уже находятся. Идея в том, что как только вы покинете development в производство Django больше не может обслуживать статические файлы из-за проблем, которые я не буду здесь (это в статьи). Однако для производства, все статические файлы должны быть в одном каталоге, а не во многих, как указано в STATICFILES_DIRS. Таким образом, этот параметр указывает каталог, в который Django будет копировать все статические файлы из всех файлов в STATICFILES_DIRS, выполнив следующую команду:

$ python manage.py collectstatic

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

Urls.py

в разработке для Django для обслуживания ваших статических файлов вы должны включить статические URL-адреса в свой urls.py:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

urlpatterns = ...

urlpatterns += staticfiles_urlpatterns()

как только вы завершите все вышеперечисленные вещи, ваши статические файлы должны обслуживаться до тех пор, пока у вас есть DEBUG = True. Из списка выше, вы, кажется, только завершить STATIC_URL. Также обратите внимание что все шаги, которые я описал выше, находятся в документах, которые вы связали в своем вопросе (ссылке). Это может быть немного запутанным в начале, но если вы прочитаете его пару раз, это станет яснее.


добавление RequestContext в ответ должно загрузить переменную STATIC_URL в шаблон.

попробуйте изменить:

from django.shortcuts import render_to_response

def index(request):
    return render_to_response('index.html')

в:

from django.shortcuts import render_to_response
from django.template.context import RequestContext

def index(request):
    return render_to_response("index.html", context_instance=RequestContext(request)) 

обратитесь к документации Django на ссылка на статические файлы в шаблонах для получения дополнительной информации.