51 lines
2.2 KiB
Python
51 lines
2.2 KiB
Python
"""
|
|
URL configuration for lpon_site project.
|
|
|
|
The `urlpatterns` list routes URLs to views. For more information please see:
|
|
https://docs.djangoproject.com/en/6.0/topics/http/urls/
|
|
Examples:
|
|
Function views
|
|
1. Add an import: from my_app import views
|
|
2. Add a URL to urlpatterns: path('', views.home, name='home')
|
|
Class-based views
|
|
1. Add an import: from other_app.views import Home
|
|
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
|
|
Including another URLconf
|
|
1. Import the include() function: from django.urls import include, path
|
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
|
"""
|
|
from django.contrib import admin
|
|
from django.urls import path, include, re_path
|
|
from django.conf import settings
|
|
from django.conf.urls.static import static
|
|
from django.views.static import serve
|
|
|
|
from frontend import views
|
|
|
|
urlpatterns = [
|
|
# Раздача статических файлов из корня каталога PUBLIC_DIR (favicon.ico, favicon.png, favicon.svg, robots.txt и др.)
|
|
# Роут с точкой в имени файла строго отделяет файлы от слагов хабов/статей.
|
|
re_path(
|
|
r'^(?P<path>[-a-zA-Z0-9_]+\.[a-zA-Z0-9]+)$',
|
|
serve,
|
|
{'document_root': settings.PUBLIC_DIR},
|
|
name='public_root_files',
|
|
),
|
|
|
|
# Админ-сайт с переименованными приложениями (переопределен в frontend/apps.py)
|
|
path(settings.ADMIN_URL, admin.site.urls),
|
|
|
|
re_path(r'^$', views.index),
|
|
re_path(r'^catalog/$', views.catalog),
|
|
re_path(r'^info/?$', views.info_articles_list, name='info_articles_list'),
|
|
re_path(r'^info/(?P<slug>[-a-zA-Z0-9_]+)/?$', views.info_article_detail, name='info_article_detail'),
|
|
|
|
# Универсальный роут для хабов и страниц из корня (должен идти ПОСЛЕДНИМ!)
|
|
re_path(r'^(?P<slug>[-a-zA-Z0-9_]+)/?$', views.hub_detail, name='hub_detail'),
|
|
]
|
|
|
|
# Сервировать медиа-файлы в разработке (в production использовать nginx/Apache)
|
|
if settings.DEBUG:
|
|
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
|
|