From fc460d80a69a307960b32cc714fb817d650ef5f4 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Tue, 10 Mar 2026 16:56:06 +0800 Subject: [PATCH] chore: serve built frontend from backend --- backend/config/settings.py | 5 ++++- backend/config/urls.py | 11 ++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/backend/config/settings.py b/backend/config/settings.py index 874aff9..9ffbaf6 100644 --- a/backend/config/settings.py +++ b/backend/config/settings.py @@ -55,7 +55,7 @@ ROOT_URLCONF = 'config.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], + 'DIRS': [os.path.join(BASE_DIR, 'dist')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ @@ -118,6 +118,9 @@ USE_TZ = True STATIC_URL = 'static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') +STATICFILES_DIRS = [ + os.path.join(BASE_DIR, 'dist', 'assets'), +] # Media files MEDIA_URL = 'media/' diff --git a/backend/config/urls.py b/backend/config/urls.py index 7ba93c5..9324de8 100644 --- a/backend/config/urls.py +++ b/backend/config/urls.py @@ -2,9 +2,10 @@ URL configuration for new_materials_db project. """ from django.contrib import admin -from django.urls import path, include +from django.urls import path, include, re_path from django.conf import settings from django.conf.urls.static import static +from django.views.generic import TemplateView urlpatterns = [ path('admin/', admin.site.urls), @@ -18,3 +19,11 @@ urlpatterns = [ # 开发环境下提供媒体文件服务 if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + urlpatterns += static('/assets/', document_root=settings.BASE_DIR / 'dist' / 'assets') + +# 前端单页应用入口 +urlpatterns += [ + re_path(r'^(?!api/|admin/|media/).*$', + TemplateView.as_view(template_name='index.html'), + name='frontend-index'), +]