feat: webserver: redirect / to /index.html
All checks were successful
Build RPi Pico firmware image / Build-Firmware (push) Successful in 4m41s
Check code formatting / Check-C-Format (push) Successful in 7s
Check code formatting / Check-Python-Flake8 (push) Successful in 9s
Check code formatting / Check-Bash-Shellcheck (push) Successful in 4s
Run unit tests on host / Run-Unit-Tests (push) Successful in 7s
Run pytests / Check-Pytest (push) Successful in 10s

Signed-off-by: Matthias Blankertz <matthias@blankertz.org>
This commit is contained in:
2025-12-16 21:01:18 +01:00
parent 8a2d621c7d
commit b20a31ccf4

View File

@@ -5,7 +5,7 @@ Copyright (c) 2024-2025 Stefan Kratochwil <Kratochwil-LA@gmx.de>
import asyncio import asyncio
from microdot import Microdot, send_file from microdot import Microdot, redirect, send_file
webapp = Microdot() webapp = Microdot()
server = None server = None
@@ -27,7 +27,7 @@ async def before_request_handler(request):
app.reset_idle_timeout() app.reset_idle_timeout()
@webapp.route('/') @webapp.route('/api/v1/hello')
async def index(request): async def index(request):
print("wohoo, a guest :)") print("wohoo, a guest :)")
print(f" app: {request.app}") print(f" app: {request.app}")
@@ -66,12 +66,17 @@ async def config_put(request):
return '', 204 return '', 204
@webapp.route('/', methods=['GET'])
async def root_get(request):
return redirect('/index.html')
@webapp.route('/index.html', methods=['GET']) @webapp.route('/index.html', methods=['GET'])
async def index_get(request): async def index_get(request):
return send_file('/frontend/index.html.gz', content_type='text/html', compressed='gzip') return send_file('/frontend/index.html.gz', content_type='text/html', compressed='gzip')
@webapp.route('/static/<path:path>') @webapp.route('/static/<path:path>', methods=['GET'])
async def static(request, path): async def static(request, path):
if '..' in path: if '..' in path:
# directory traversal is not allowed # directory traversal is not allowed