feat: 前端渲染以及 放开.env的ignore
parent
8119bb4c8f
commit
94010c8c2b
@ -0,0 +1,40 @@
|
|||||||
|
FLASK_ENV=dev
|
||||||
|
SECRET_KEY=iti-flask
|
||||||
|
JWT_SECRET_KEY=iti-flask
|
||||||
|
DATABASE_URL=sqlite:///runtime/iti-flask_dev.db
|
||||||
|
|
||||||
|
# 前端相关
|
||||||
|
# FRONTEND_ENABLED=False # 是否启用前端渲染
|
||||||
|
# FRONTEND_PATH=dist # 前端文件所在位置,若static则无需填写
|
||||||
|
|
||||||
|
# ============================================
|
||||||
|
# 文件存储 - 阿里云OSS
|
||||||
|
# ============================================
|
||||||
|
# ALIYUN_OSS_ACCESS_KEY_ID=LTAI5t...
|
||||||
|
# ALIYUN_OSS_ACCESS_KEY_SECRET=your_access_key_secret
|
||||||
|
# ALIYUN_OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com
|
||||||
|
# ALIYUN_OSS_BUCKET=your-bucket-name
|
||||||
|
|
||||||
|
# ============================================
|
||||||
|
# 文件存储 - 腾讯云COS
|
||||||
|
# ============================================
|
||||||
|
# TENCENT_COS_SECRET_ID=AKIDxxx
|
||||||
|
# TENCENT_COS_SECRET_KEY=your_secret_key
|
||||||
|
# TENCENT_COS_REGION=ap-guangzhou
|
||||||
|
# TENCENT_COS_BUCKET=your-bucket-1234567890
|
||||||
|
|
||||||
|
# ============================================
|
||||||
|
# 文件存储 - 七牛云Kodo
|
||||||
|
# ============================================
|
||||||
|
# QINIU_KODO_ACCESS_KEY=your_access_key
|
||||||
|
# QINIU_KODO_SECRET_KEY=your_secret_key
|
||||||
|
# QINIU_KODO_BUCKET=your-bucket-name
|
||||||
|
# QINIU_KODO_DOMAIN=cdn.example.com
|
||||||
|
|
||||||
|
# ============================================
|
||||||
|
# 文件存储 - 华为云OBS
|
||||||
|
# ============================================
|
||||||
|
# HUAWEI_OBS_ACCESS_KEY_ID=your_access_key_id
|
||||||
|
# HUAWEI_OBS_SECRET_ACCESS_KEY=your_secret_access_key
|
||||||
|
# HUAWEI_OBS_SERVER=obs.cn-north-4.myhuaweicloud.com
|
||||||
|
# HUAWEI_OBS_BUCKET=your-bucket-name
|
||||||
@ -0,0 +1,17 @@
|
|||||||
|
BASE_DIR=D:/Projects/iTi/iTi-Flask/iti
|
||||||
|
#
|
||||||
|
FLASK_ENV=dev
|
||||||
|
SECRET_KEY=iti-flask
|
||||||
|
JWT_SECRET_KEY=iti-flask
|
||||||
|
DATABASE_URL=sqlite:///${BASE_DIR}/runtime/iti-flask_dev.db
|
||||||
|
# 前端相关
|
||||||
|
FRONTEND_ENABLED=False # 是否启用前端渲染
|
||||||
|
FRONTEND_PATH=dist # 前端文件所在位置,若static则无需填写
|
||||||
|
|
||||||
|
# ============================================
|
||||||
|
# 文件存储 - 阿里云OSS
|
||||||
|
# ============================================
|
||||||
|
ALIYUN_OSS_ACCESS_KEY_ID=LTAI5t9cymUAWHVEo36yygaT
|
||||||
|
ALIYUN_OSS_ACCESS_KEY_SECRET=FaaUsxadRYyshbYeAV8ypZNYVOx3tE
|
||||||
|
ALIYUN_OSS_ENDPOINT=oss-cn-chengdu.aliyuncs.com
|
||||||
|
ALIYUN_OSS_BUCKET=maintaince-dev
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
FLASK_ENV=prod
|
||||||
|
SECRET_KEY=zhSYJn577LgxyWDuQboM9wX3j2BHEFUP
|
||||||
|
JWT_SECRET_KEY=8YD37VvM3WgdpmKNt7kVFNbKnya4hBRh
|
||||||
|
DATABASE_URL=sqlite:///runtime/iti-flask_dev.db
|
||||||
|
# 前端相关
|
||||||
|
FRONTEND_ENABLED=False # 是否启用前端渲染
|
||||||
|
FRONTEND_PATH=dist # 前端文件所在位置,若static则无需填写
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
from apiflask import APIBlueprint
|
||||||
|
from flask import send_from_directory, current_app
|
||||||
|
import os
|
||||||
|
|
||||||
|
bp = APIBlueprint("front", __name__, tag="前端")
|
||||||
|
|
||||||
|
def _get_frontend_path():
|
||||||
|
return os.path.join(current_app.static_folder, current_app.config.get("FRONTEND_PATH", ""))
|
||||||
|
|
||||||
|
@bp.get("/")
|
||||||
|
def index():
|
||||||
|
"""渲染前端 SPA 入口页面"""
|
||||||
|
return send_from_directory(_get_frontend_path(), "index.html")
|
||||||
|
|
||||||
|
@bp.get('/<path:fallback>')
|
||||||
|
def fallback(fallback):
|
||||||
|
"""兜底: 避免history模式下的影响"""
|
||||||
|
frontend_path = _get_frontend_path()
|
||||||
|
if not os.path.exists(os.path.join(frontend_path, fallback)):
|
||||||
|
return send_from_directory(frontend_path, 'index.html')
|
||||||
|
else:
|
||||||
|
return send_from_directory(frontend_path, fallback)
|
||||||
Loading…
Reference in New Issue