Evan Almloff 11 месяцев назад
Родитель
Сommit
96450a110e
1 измененных файлов с 8 добавлено и 5 удалено
  1. 8 5
      packages/router/src/history/web.rs

+ 8 - 5
packages/router/src/history/web.rs

@@ -96,8 +96,14 @@ impl<R: Routable> WebHistory<R> {
         }
 
         let prefix = prefix
+            // If there isn't a base path, try to grab one from the CLI
             .or_else(|| base_path().map(|s| s.to_string()))
-            .map(|prefix| format!("/{}", prefix.trim_matches('/')));
+            // Normalize the prefix to start and end with no slashes
+            .map(|prefix| prefix.trim_matches('/').to_string())
+            // If the prefix is empty, don't add it
+            .filter(|prefix| !prefix.is_empty())
+            // Otherwise, start with a slash
+            .map(|prefix| format!("/{prefix}"));
 
         Self {
             do_scroll_restoration,
@@ -214,10 +220,7 @@ where
     }
 
     fn replace(&mut self, state: R) {
-        let path = match &self.prefix {
-            None => format!("{state}"),
-            Some(prefix) => format!("{prefix}{state}"),
-        };
+        let path = self.full_path(&state);
 
         let state = self.create_state(state);
         self.handle_nav(replace_state_with_url(&self.history, &state, Some(&path)));