La URL relativa al servidor debe comenzar con la URL relativa al servidor de spweb: solución
🔍 WiseChecker

La URL relativa al servidor debe comenzar con la URL relativa al servidor de spweb: solución

Cuando veas el mensaje de error “Server Relative URL Must Start With SPWeb Server Relative URL” en SharePoint, significa que una URL que proporcionaste para un sitio, biblioteca o archivo no coincide con el formato esperado para la colección de sitios actual. Este error aparece típicamente durante el desarrollo personalizado, scripts de PowerShell o al usar SharePoint Designer para modificar la navegación o las propiedades de los elementos web. La causa raíz es un desajuste entre la URL relativa al servidor que proporcionaste y la ruta relativa al servidor real del objeto SPWeb (el sitio o subsitio) con el que estás trabajando.

Este artículo explica por qué ocurre este desajuste de URL y cómo resolverlo. Aprenderás el formato correcto para las URL relativas al servidor en SharePoint, verás pasos prácticos para corregir el error en PowerShell y SharePoint Designer, y comprenderás patrones de fallo relacionados que producen errores similares. Al final, podrás identificar y corregir URL mal formadas en tu entorno de SharePoint.

Puntos clave: Corregir el error de URL relativa al servidor en SharePoint

  • Formato de URL relativa al servidor: Debe comenzar con una barra diagonal (/) seguida de la ruta administrada y el nombre del sitio, por ejemplo /sites/marketing.
  • PowerShell Get-SPWeb: Usa el parámetro -Site con la URL de la colección de sitios raíz para recuperar el objeto SPWeb correcto antes de construir URL.
  • Navegación en SharePoint Designer: Al editar enlaces de navegación, asegúrate de que el campo URL contenga la ruta relativa al servidor completa, no una ruta relativa que le falte la barra diagonal inicial.

ADVERTISEMENT

Por qué ocurre el error de URL relativa al servidor

SharePoint utiliza dos tipos de URL: URL absolutas (dirección web completa como https://contoso.sharepoint.com/sites/marketing) y URL relativas al servidor (ruta que comienza desde la raíz de la aplicación web, como /sites/marketing). El objeto SPWeb representa un sitio o subsitio específico en la colección de sitios. Cuando proporcionas una URL relativa al servidor a un método o propiedad que espera que la URL comience con la ruta relativa al servidor del objeto SPWeb, se lanza el error “Server Relative URL Must Start With SPWeb Server Relative URL”.

La causa técnica es un desajuste en el prefijo de la URL. Por ejemplo, si el objeto SPWeb actual está en /sites/marketing y proporcionas una URL como /sites/sales/documents, el sistema detecta que la URL proporcionada no comienza con /sites/marketing. Esta validación existe para prevenir operaciones entre colecciones de sitios que podrían romper permisos, navegación o consultas de contenido. El error aparece comúnmente en los siguientes escenarios:

  • Scripts de PowerShell que llaman a Get-SPWeb o Set-SPWeb con un parámetro -Site o -RelativeUrl incorrecto.
  • SharePoint Designer al editar la Navegación Global o la Navegación Actual e ingresar una URL que apunta a otra colección de sitios.
  • Código personalizado que usa el Modelo de Objetos de SharePoint (lado del servidor o CSOM) con concatenación incorrecta de URL.
  • Propiedades de elementos web que hacen referencia a una lista o biblioteca usando una URL relativa que no coincide con el sitio actual.

Pasos para corregir el error de URL relativa al servidor

Sigue los pasos a continuación para diagnosticar y corregir el desajuste de URL. El método exacto depende de dónde ocurra el error. Cubrimos los dos entornos más comunes: SharePoint Management Shell (PowerShell) y SharePoint Designer.

Corrección en SharePoint Management Shell (PowerShell)

Al ejecutar cmdlets de PowerShell como Get-SPWeb, el parámetro -Site espera la URL relativa al servidor completa de la colección de sitios. Si proporcionas una URL que no coincide con el SPWeb actual, aparece el error.

  1. Abre SharePoint Management Shell como administrador
    Ejecuta PowerShell con privilegios administrativos y carga el complemento de SharePoint escribiendo: Add-PSSnapin Microsoft.SharePoint.PowerShell
  2. Obtén la URL de la colección de sitios raíz
    Escribe Get-SPSite | Select Url para listar todas las colecciones de sitios en la granja. Identifica la URL correcta de la colección de sitios, por ejemplo https://sharepoint.contoso.com/sites/marketing.
  3. Recupera el objeto SPWeb correctamente
    Usa Get-SPWeb con el parámetro -Site establecido en la URL de la colección de sitios raíz y el parámetro -RelativeUrl establecido en la ruta del subsitio si es necesario. Para el sitio web raíz, escribe: Get-SPWeb -Site “https://sharepoint.contoso.com/sites/marketing” -RelativeUrl “/”
  4. Construye la URL relativa al servidor correctamente
    Al usar el objeto SPWeb en comandos posteriores, siempre antepone la propiedad SPWeb.ServerRelativeUrl a cualquier ruta relativa. Por ejemplo, para hacer referencia a una biblioteca llamada Documentos, usa: $web.ServerRelativeUrl + “/Documents”
  5. Verifica la URL antes de usarla
    Escribe la URL construida en la consola con Write-Host para confirmar que comienza con el mismo prefijo que $web.ServerRelativeUrl. Si no es así, ajusta la ruta relativa.

Corrección en SharePoint Designer

SharePoint Designer a menudo produce este error al editar nodos de navegación que apuntan a sitios externos o rutas relativas al servidor incorrectas.

  1. Abre el sitio en SharePoint Designer
    Inicia SharePoint Designer y abre el sitio donde aparece el error. Haz clic en Site Pages u Site Objects en el panel de navegación izquierdo.
  2. Navega a la configuración de navegación
    Haz clic en Navigation bajo Site Objects. Esto muestra el árbol de Navegación Global y Navegación Actual.
  3. Selecciona el nodo de navegación problemático
    Haz clic en el nodo que muestra el error o que sospechas que tiene una URL incorrecta. En el panel Summary a la derecha, localiza el campo URL.
  4. Corrige la URL a una ruta relativa al servidor
    Cambia la URL a una ruta relativa al servidor que comience con la URL relativa al servidor del propio sitio. Por ejemplo, si el sitio está en /sites/marketing, un enlace interno válido podría ser /sites/marketing/Pages/default.aspx. Si necesitas enlazar a otra colección de sitios, usa la URL absoluta en su lugar.
  5. Guarda y prueba
    Haz clic en Save en la cinta. Navega al sitio y haz clic en el nodo de navegación para verificar que funciona sin el error.

ADVERTISEMENT

Si SharePoint aún tiene problemas después de la corrección principal

Incluso después de corregir el formato de URL, pueden aparecer errores relacionados. A continuación se presentan patrones de fallo comunes y sus soluciones.

“Cannot Complete This Action” en SharePoint Designer después del cambio de URL

Este error ocurre cuando el nodo de navegación apunta a una URL que no existe o cuando la colección de sitios tiene características de publicación habilitadas pero la página no está publicada. Verifica que la página de destino exista y esté publicada. En SharePoint Designer, haz clic derecho en la página en la biblioteca Pages y selecciona Publish a major version.

Error de PowerShell “Cannot Find an SPWeb Object”

Si Get-SPWeb devuelve null, la URL que proporcionaste no es una colección de sitios o subsitio válido. Verifica que la colección de sitios exista ejecutando Get-SPSite. Revisa la ruta administrada (por ejemplo /sites/ o /teams/) y el nombre del sitio por errores tipográficos. Usa el parámetro -Limit ALL para listar todas las colecciones de sitios si no estás seguro de la URL exacta.

Error de elemento web “List Does Not Exist” después de la corrección de URL

Cuando un elemento web hace referencia a una lista usando una URL relativa al servidor, la URL debe apuntar a una lista dentro del mismo sitio o subsitio. Si la lista está en un subsitio diferente, usa la URL absoluta completa o métodos de consulta entre colecciones de sitios. Para corregirlo, edita el elemento web y cambia la URL para que apunte a una lista en el sitio actual, o usa la API de búsqueda de SharePoint para recuperar datos de otros sitios.

URL relativa al servidor vs URL absoluta: diferencias clave

Elemento URL relativa al servidor URL absoluta
Formato Comienza con / e incluye la ruta administrada, por ejemplo, /sites/marketing Comienza con protocolo y dominio, por ejemplo, https://contoso.sharepoint.com/sites/marketing
Caso de uso Navegación interna, conexiones de elementos web, scripts de PowerShell dentro de la misma granja Enlaces entre granjas, notificaciones por correo electrónico, enlaces de uso compartido externo
Portabilidad Se rompe si la colección de sitios se mueve a un dominio o aplicación web diferente Sigue siendo válida siempre que el dominio sea accesible
Error común “Server Relative URL Must Start With SPWeb Server Relative URL” “404 Not Found” si el dominio o la ruta son incorrectos

Ahora sabes por qué ocurre el error “Server Relative URL Must Start With SPWeb Server Relative URL” y cómo corregirlo tanto en PowerShell como en SharePoint Designer. Siempre verifica que tu URL relativa al servidor comience con la propiedad ServerRelativeUrl del objeto SPWeb. Para enlaces de navegación que apuntan a otras colecciones de sitios, usa la URL absoluta en su lugar. Como consejo avanzado, al escribir código personalizado, usa la propiedad SPWeb.ServerRelativeUrl como base y agrega rutas con el método SPUtility.ConcatUrls para evitar problemas con barras diagonales finales.

ADVERTISEMENT