Джанго статические файлы CSS - PullRequest
1 голос
/ 31 января 2011

Как я могу просмотреть мои статические CSS-файлы? Я установил свой STATIC_ROOT и использую python manage.py runserver .

В моей среде разработки, согласно документам , мне нужно только разместить мои статические файлы (в данном случае, /static/css/typography.css) в моем STATIC_ROOT и python manage .py runserver автоматически создаст представления, необходимые для доступа к нему, если у меня есть DEBUG = True.

STATIC_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), "static")

Я также попытался вручную добавить представления в URLConf, который также не отображает файл css:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

# ... the rest of your URLconf goes here ...

urlpatterns += staticfiles_urlpatterns()

В моем шаблоне {{ STATIC_URL }} попадает по правильному адресу (/static/css/typography.css), но он не будет обслуживать файл, когда я пытаюсь получить к нему доступ:

   <link href="{{ STATIC_URL }}css/typography.css" rel="stylesheet" type="text/css">

Примечания. Другим вопросам, связанным со статическими файлами Django в StackOverflow, более двух лет. Django версии 1.3b1 различает STATIC (статические файлы, такие как CSS и изображения) и MEDIA (загруженный пользователем файл).

Ответы [ 3 ]

1 голос
/ 09 сентября 2012

Кроме того. Во всех упомянутых выше попытках вы также должны убедиться, что ваш шаблон получает RequestContext при вызове из представления.

http://lincolnloop.com/blog/2008/may/10/getting-requestcontext-your-templates/

Эта ссылка дает различные способы сделать то же самое, и вы можете выбрать любой. :) Кроме того, TEMPLATE_CONTEXT_PROCESSORS должен быть добавлен в settings.py, чтобы это вступило в силу.

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "myapp.processor.foos",
)

Примечание: STATIC_ROOT - это место, где все ваши статические файлы хранятся в Django после сбора их из STATICFILES_DIRS. Сервер выполнения выберет их по пути, указанному в STATIC_ROOT, поэтому STATIC_URL должен указывать на то же местоположение, что и STATIC_ROOT.

0 голосов
/ 21 марта 2017

В разработке:

#settings.py have this by default 

STATIC_URL = '/ static /'

Это означает, что когда вы хотите использовать статические файлы, django будет искать их впапка «static» в каталоге вашего приложения.Таким образом, вам нужно создать папку «static» в каждом вашем приложении и поместить в ваши статические файлы.

В работе:
1. Место для хранения статических файлов из всех приложений

STATIC_ROOT = "/var/www/example.com/static/"

2.Запустите python manage.py collectstatic для сбора статических файлов из всех приложений в папке STATIC_ROOT.
3. В settings.py измените DEBUG = False и ALLOWED_HOSTS = ['yourhostadress '] .
4. Укажите свой веб-сервер на папку STATIC_ROOT (например, для Apache2.4):

Alias /static/ /path/to/mysite.com/static/
<Directory /path/to/mysite.com/static>
Require all granted
</Directory>

После этой настройки ваш проект django должен быть в состоянии работать (используяmod_wsgi) и использовать статические файлы на веб-сервере Apache.

0 голосов
/ 31 января 2011

Ответили здесь: Справка приложения Django staticfiles

Я помещал свои файлы в STATIC_ROOT, поэтому добавление этого работает:

STATICFILES_DIRS = (STATIC_ROOT,)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...