Я почти уверен, что там лежит дубликат, но не смог его найти.
При объявлении urlpatterns
в urls.py в dev я успешно использую следующее:
urlpatterns = [
# some routes
]
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
Что понятно, работает.
Но если я попробую следующее:
urlpatterns = [
# some routes,
static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
]
Сервер django умирает с жалобой:
?: (urls.E004) Your URL pattern [<URLPattern '^static\/(?P<path>.*)$'>] is invalid. Ensure that urlpatterns is a list of path() and/or re_path() instances.
Почему два определения не эквивалентны? Возвращение static()
должно быть таким же:
return [
re_path(r'^%s(?P<path>.*)$' % re.escape(prefix.lstrip('/')), view, kwargs=kwargs),
]
И, таким образом, действителен, но работает, только если я объединяю элемент в список, а не определяю его непосредственно в списке.
Почему один метод работает, а другой нет?