diff --git a/panel/io/state.py b/panel/io/state.py index 68233ba5f0..a2f15e9ca4 100644 --- a/panel/io/state.py +++ b/panel/io/state.py @@ -488,12 +488,24 @@ def headers(self): def location(self): if self.curdoc and self.curdoc not in self._locations: from .location import Location - self._locations[self.curdoc] = loc = Location() - return loc + loc = self._locations[self.curdoc] = Location() elif self.curdoc is None: - return self._location + loc = self._location else: - return self._locations.get(self.curdoc) if self.curdoc else None + loc = self._locations.get(self.curdoc) if self.curdoc else None + + if '?' in self.base_url: + try: + loc.search = f'?{self.base_url.split("?")[-1].strip("/")}' + except Exception: + pass + if '#' in self.base_url: + try: + loc.hash = f'#{self.base_url.split("#")[-1].strip("/")}' + except Exception: + pass + + return loc @property def notifications(self):