Мене бентежить static root
і хочу уточнити речі.
Для того, щоб обслуговувати статичні файли в Django, наступне має бути settings.py
і urls.py
:
import os
PROJECT_DIR=os.path.dirname(__file__)
1. Абсолютний шлях до каталогу, в який слід збирати статичні файли
STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')
2. Префікс URL для статичних файлів
STATIC_URL = '/static/'
3. Додаткові місця для статичних файлів
STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)
... і в urls.py
наступних рядках:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
))
4. Ми також використовуємо python manage.py collectstatic
Запитання:
Чи могла б хто-небудь пояснити мені робочий процес: як слід ідеально робити. На сьогоднішній день я копіюю та вставляю вищевказані фрагменти коду у вказані місця та продовжую створювати нові файли в статичному каталозі, і це працює. У своєму
settings.STATIC_ROOT
, однак, я вказав на інший каталог.Було б чудово, якби хтось міг пояснити робочий процес кожного налаштування: як файли збираються та керуються, і яку корисну практику слід дотримуватися.
Дякую.
if settings.DEBUG:
django не дуже добре для обслуговування статичних медіа, це слід залишити справжньому веб-серверу.