瀏覽代碼

add 404 error page

Falko Schindler 2 年之前
父節點
當前提交
d940d65cc5
共有 2 個文件被更改,包括 12 次插入0 次删除
  1. 10 0
      nicegui/elements/page.py
  2. 2 0
      nicegui/nicegui.py

+ 10 - 0
nicegui/elements/page.py

@@ -175,3 +175,13 @@ def get_current_view() -> jp.HTMLBaseComponent:
         view_stack.append(page.view)
         jp.Route('/', page._route_function)
     return view_stack[-1]
+
+
+def error404() -> jp.QuasarPage:
+    wp = jp.QuasarPage(title=config.title, favicon=config.favicon, dark=config.dark, tailwind=True)
+    div = jp.Div(a=wp, classes='py-20 text-center')
+    jp.Div(a=div, classes='text-8xl py-5', text='☹',
+           style='font-family: "Arial Unicode MS", "Times New Roman", Times, serif;')
+    jp.Div(a=div, classes='text-6xl py-5', text='404')
+    jp.Div(a=div, classes='text-xl py-5', text='This page doesn\'t exist.')
+    return wp

+ 2 - 0
nicegui/nicegui.py

@@ -12,6 +12,7 @@ if True:  # NOTE: prevent formatter from mixing up these lines
 from . import binding, globals
 from .task_logger import create_task
 from .timer import Timer
+from .elements.page import error404
 
 jp.app.router.on_startup.clear()  # NOTE: remove JustPy's original startup function
 
@@ -26,6 +27,7 @@ async def patched_justpy_startup():
 
 @jp.app.on_event('startup')
 async def startup():
+    jp.Route("/{path:path}", error404, last=True)
     for route, page_builder in globals.page_builders.items():
         if page_builder.shared:
             jp.Route(route, (await page_builder.function())._route_function)