[英]How to serve a Flutter web app with Django?
在構建 flutter web 應用程序
flutter build web
我想使用簡單的 Django 服務器為應用程序提供服務。 我怎樣才能做到這一點?
運行命令后,將 flutter 項目中的build\web
目錄復制到您的 django 項目中。 假設您將其放在根目錄並將其重命名為flutter_web_app
。
所以我們有,
djangoproject
| djangoproject
| settings.py
| urls.py
| ...
| flutter_web_app
| ...
| other apps
現在編輯flutter_web_app/index.html
中的base
標簽,給應用程序一個前綴。 請注意,前綴/基礎應以/
開頭和結尾。
<head>
...
<base href="/flutter_web_app/">
...
</head>
現在,在您的djangoproject/urls.py
中,匹配前綴並為您的 flutter 應用程序提供服務。
from django.urls import path
from django.views.static import serve
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
FLUTTER_WEB_APP = os.path.join(BASE_DIR, 'flutter_web_app')
def flutter_redirect(request, resource):
return serve(request, resource, FLUTTER_WEB_APP)
urlpatterns = [
...
path('flutter_web_app/', lambda r: flutter_redirect(r, 'index.html')),
path('flutter_web_app/<path:resource>', flutter_redirect),
]
在本地運行,url 127.0.0.1/flutter_web_app
將為我們的flutter_web_app/index.html
服務。
flutter 應用程序所需的所有文件都以flutter_web_app
為前綴。 例如。 main.dart.js
通過 GET 請求到flutter_web_app/main.dart.js
。 我們將前綴后面的路徑提取為resource
,並從flutter_web_app
目錄( flutter_redirect
函數)提供相應的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.