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')
<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 на ссылка на статические файлы в шаблонах для получения дополнительной информации.