diff --git a/leafmap/common.py b/leafmap/common.py index e8d0232adb..ff5a302367 100644 --- a/leafmap/common.py +++ b/leafmap/common.py @@ -3316,19 +3316,23 @@ def get_local_tile_layer( for key in client_args: kwargs[key] = client_args[key] - # Make it compatible with binder and JupyterHub - if os.environ.get("JUPYTERHUB_SERVICE_PREFIX") is not None: - os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( - f"{os.environ['JUPYTERHUB_SERVICE_PREFIX'].lstrip('/')}/proxy/{{port}}" - ) + # Only override LOCALTILESERVER_CLIENT_PREFIX if it's unset + if os.environ.get("LOCALTILESERVER_CLIENT_PREFIX") is None: + # Make it compatible with binder and JupyterHub + if os.environ.get("JUPYTERHUB_SERVICE_PREFIX") is not None: + os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( + f"{os.environ['JUPYTERHUB_SERVICE_PREFIX'].strip('/')}/proxy/{{port}}" + ) - if is_studio_lab(): - os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( - f"studiolab/default/jupyter/proxy/{{port}}" - ) - elif is_on_aws(): - os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = "proxy/{port}" - elif "prefix" in kwargs: + if is_studio_lab(): + os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = ( + f"studiolab/default/jupyter/proxy/{{port}}" + ) + elif is_on_aws(): + os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = "proxy/{port}" + + # The prefix kwarg has final precedence + if "prefix" in kwargs: os.environ["LOCALTILESERVER_CLIENT_PREFIX"] = kwargs["prefix"] kwargs.pop("prefix")