瀏覽代碼

improve 404 logic (#1398)

Thomas Brandého 1 年之前
父節點
當前提交
06f6e1e7bd
共有 3 個文件被更改,包括 5 次插入14 次删除
  1. 2 1
      reflex/.templates/web/utils/state.js
  2. 2 11
      reflex/app.py
  3. 1 2
      reflex/constants.py

+ 2 - 1
reflex/.templates/web/utils/state.js

@@ -168,7 +168,8 @@ export const applyEvent = async (event, router, socket) => {
 
   // Send the event to the server.
   event.token = getToken();
-  event.router_data = (({ pathname, query }) => ({ pathname, query }))(router);
+  event.router_data = (({ pathname, query, asPath }) => ({ pathname, query, asPath }))(router);
+
   if (socket) {
     socket.emit("event", JSON.stringify(event));
     return true;

+ 2 - 11
reflex/app.py

@@ -432,14 +432,7 @@ class App(Base):
         )
 
         froute = format.format_route
-        if (froute(constants.ROOT_404) not in self.pages) and (
-            not any(page.startswith("[[...") for page in self.pages)
-        ):
-            self.pages[froute(constants.ROOT_404)] = component
-        if not any(
-            page.startswith("[...") or page.startswith("[[...") for page in self.pages
-        ):
-            self.pages[froute(constants.SLUG_404)] = component
+        self.pages[froute(constants.SLUG_404)] = component
 
     def setup_admin_dash(self):
         """Setup the admin dash."""
@@ -663,9 +656,7 @@ def upload(app: App):
             update = await app.postprocess(state, event, update)
             # Send update to client
             await asyncio.create_task(
-                app.event_namespace.emit(  # type: ignore
-                    str(constants.SocketEvent.EVENT), update.json(), to=sid
-                )
+                app.event_namespace.emit(str(constants.SocketEvent.EVENT), update.json(), to=sid)  # type: ignore
             )
         # Set the state for the session.
         app.state_manager.set_state(event.token, state)

+ 1 - 2
reflex/constants.py

@@ -350,8 +350,7 @@ class RouteRegex(SimpleNamespace):
 
 
 # 404 variables
-ROOT_404 = ""
-SLUG_404 = "[..._]"
+SLUG_404 = "404"
 TITLE_404 = "404 - Not Found"
 FAVICON_404 = "favicon.ico"
 DESCRIPTION_404 = "The page was not found"