""" URL configuration for config 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.conf import settings from django.conf.urls.i18n import i18n_patterns from django.contrib import admin from django.urls import include, path from django.views.generic import TemplateView from django.views.static import serve urlpatterns = [ path('admin/', admin.site.urls), # Sin prefijo de idioma (fuera de i18n_patterns, ver más abajo) ni bajo # STATIC_URL: sw.js necesita servirse desde la raíz para que su ámbito # (qué rutas puede interceptar un Service Worker) cubra el origen # entero, no solo /static/ o /es/ (ver crochet/templates/sw.js). Se # renderiza como plantilla (no un archivo estático de whitenoise) para # que {% static %}/{% url %} resuelvan ahí mismo las rutas (con hash) # vigentes en cada respuesta. path( 'sw.js', name='service_worker', view=TemplateView.as_view(template_name='sw.js', content_type='application/javascript'), ), path( 'manifest.json', name='manifest', view=TemplateView.as_view(template_name='manifest.json', content_type='application/manifest+json'), ), path('offline/', name='offline', view=TemplateView.as_view(template_name='offline.html')), path('i18n/', include('django.conf.urls.i18n')), ] # i18n_patterns antepone el prefijo de idioma (/es/..., /en/...) a cada URL, # resuelto por LocaleMiddleware (ver MIDDLEWARE en base.py): así el # idioma del patrón viaja en la propia URL sin tener que declararlo a mano # como parámetro en cada ruta de crochet/urls.py. urlpatterns += i18n_patterns( path('', include('crochet.urls', namespace='crochet')), ) urlpatterns += [ path(f'{settings.MEDIA_URL.lstrip("/")}', serve, {'document_root': settings.MEDIA_ROOT}), ] if settings.DEBUG: urlpatterns += [path("__reload__/", include("django_browser_reload.urls"))]