URL Relativa ao Servidor Deve Começar com a URL Relativa ao Servidor do SPWeb: Correção
🔍 WiseChecker

URL Relativa ao Servidor Deve Começar com a URL Relativa ao Servidor do SPWeb: Correção

Ao ver a mensagem de erro “Server Relative URL Must Start With SPWeb Server Relative URL” no SharePoint, significa que uma URL fornecida para um site, biblioteca ou arquivo não corresponde ao formato esperado para a coleção de sites atual. Esse erro geralmente aparece durante desenvolvimento personalizado, scripts PowerShell ou ao usar o SharePoint Designer para modificar navegação ou propriedades de web part. A causa raiz é uma incompatibilidade entre a URL relativa ao servidor fornecida e o caminho relativo real do objeto SPWeb (o site ou subsite) com o qual você está trabalhando.

Este artigo explica por que essa incompatibilidade de URL ocorre e como resolvê-la. Você aprenderá o formato correto para URLs relativas ao servidor no SharePoint, verá etapas práticas para corrigir o erro no PowerShell e no SharePoint Designer e entenderá padrões de falha relacionados que produzem erros semelhantes. Ao final, você será capaz de identificar e corrigir URLs malformadas em seu ambiente SharePoint.

Principais conclusões: Corrigindo o erro de URL relativa ao servidor no SharePoint

  • Formato da URL relativa ao servidor: Deve começar com uma barra (/) seguida pelo caminho gerenciado e nome do site, por exemplo /sites/marketing.
  • PowerShell Get-SPWeb: Use o parâmetro -Site com a URL raiz da coleção de sites para recuperar o objeto SPWeb correto antes de construir URLs.
  • Navegação no SharePoint Designer: Ao editar links de navegação, certifique-se de que o campo URL contenha o caminho relativo completo ao servidor, não um caminho relativo sem a barra inicial.

ADVERTISEMENT

Por que o erro de URL relativa ao servidor ocorre

O SharePoint usa dois tipos de URLs: URLs absolutas (endereço web completo como https://contoso.sharepoint.com/sites/marketing) e URLs relativas ao servidor (caminho começando a partir da raiz do aplicativo web, como /sites/marketing). O objeto SPWeb representa um site ou subsite específico na coleção de sites. Quando você fornece uma URL relativa ao servidor para um método ou propriedade que espera que a URL comece com o caminho relativo do objeto SPWeb, o erro “Server Relative URL Must Start With SPWeb Server Relative URL” é gerado.

A causa técnica é uma incompatibilidade no prefixo da URL. Por exemplo, se o objeto SPWeb atual estiver em /sites/marketing e você fornecer uma URL como /sites/sales/documents, o sistema detecta que a URL fornecida não começa com /sites/marketing. Essa validação existe para evitar operações entre coleções de sites que poderiam quebrar permissões, navegação ou consultas de conteúdo. O erro aparece comumente nos seguintes cenários:

  • Scripts PowerShell que chamam Get-SPWeb ou Set-SPWeb com um parâmetro -Site ou -RelativeUrl incorreto.
  • SharePoint Designer ao editar a Navegação Global ou Navegação Atual e inserir uma URL que aponta para outra coleção de sites.
  • Código personalizado usando o Modelo de Objetos do SharePoint (server-side ou CSOM) com concatenação incorreta de URLs.
  • Propriedades de web part que referenciam uma lista ou biblioteca usando uma URL relativa que não corresponde ao site atual.

Etapas para corrigir o erro de URL relativa ao servidor

Siga as etapas abaixo para diagnosticar e corrigir a incompatibilidade de URL. O método exato depende de onde o erro ocorre. Abordamos os dois ambientes mais comuns: SharePoint Management Shell (PowerShell) e SharePoint Designer.

Correção no SharePoint Management Shell (PowerShell)

Ao executar cmdlets PowerShell como Get-SPWeb, o parâmetro -Site espera a URL relativa completa ao servidor da coleção de sites. Se você fornecer uma URL que não corresponda ao SPWeb atual, o erro aparece.

  1. Abra o SharePoint Management Shell como administrador
    Execute o PowerShell com privilégios administrativos e carregue o snap-in do SharePoint digitando: Add-PSSnapin Microsoft.SharePoint.PowerShell
  2. Obtenha a URL da coleção de sites raiz
    Digite Get-SPSite | Select Url para listar todas as coleções de sites no farm. Identifique a URL correta da coleção de sites, por exemplo https://sharepoint.contoso.com/sites/marketing.
  3. Recupere o objeto SPWeb corretamente
    Use Get-SPWeb com o parâmetro -Site definido como a URL da coleção de sites raiz e o parâmetro -RelativeUrl definido como o caminho do subsite, se necessário. Para o web raiz, digite: Get-SPWeb -Site “https://sharepoint.contoso.com/sites/marketing” -RelativeUrl “/”
  4. Construa a URL relativa ao servidor corretamente
    Ao usar o objeto SPWeb em comandos subsequentes, sempre preceda a propriedade SPWeb.ServerRelativeUrl a qualquer caminho relativo. Por exemplo, para referenciar uma biblioteca chamada Documentos, use: $web.ServerRelativeUrl + “/Documentos”
  5. Verifique a URL antes de usá-la
    Escreva a URL construída no console com Write-Host para confirmar que ela começa com o mesmo prefixo que $web.ServerRelativeUrl. Se não começar, ajuste o caminho relativo.

Correção no SharePoint Designer

O SharePoint Designer frequentemente produz esse erro ao editar nós de navegação que apontam para sites externos ou caminhos relativos ao servidor incorretos.

  1. Abra o site no SharePoint Designer
    Inicie o SharePoint Designer e abra o site onde o erro aparece. Clique em Site Pages ou Site Objects no painel de navegação esquerdo.
  2. Navegue até as configurações de Navegação
    Clique em Navigation em Site Objects. Isso exibe a árvore atual de Navegação Global e Navegação Atual.
  3. Selecione o nó de navegação problemático
    Clique no nó que mostra o erro ou que você suspeita ter uma URL incorreta. No painel Resumo à direita, localize o campo URL.
  4. Corrija a URL para um caminho relativo ao servidor
    Altere a URL para um caminho relativo ao servidor que comece com a própria URL relativa do site. Por exemplo, se o site estiver em /sites/marketing, um link interno válido pode ser /sites/marketing/Pages/default.aspx. Se precisar vincular a outra coleção de sites, use a URL absoluta.
  5. Salve e teste
    Clique em Save na faixa de opções. Navegue até o site e clique no nó de navegação para verificar se funciona sem o erro.

ADVERTISEMENT

Se o SharePoint ainda apresentar problemas após a correção principal

Mesmo após corrigir o formato da URL, erros relacionados podem aparecer. Abaixo estão padrões de falha comuns e suas soluções.

“Cannot Complete This Action” no SharePoint Designer após alteração de URL

Esse erro ocorre quando o nó de navegação aponta para uma URL que não existe ou quando a coleção de sites tem recursos de publicação habilitados, mas a página não está publicada. Verifique se a página de destino existe e está publicada. No SharePoint Designer, clique com o botão direito na página na biblioteca Pages e selecione Publish a major version.

Erro no PowerShell “Cannot Find an SPWeb Object”

Se Get-SPWeb retornar nulo, a URL fornecida não é uma coleção de sites ou subsite válido. Verifique se a coleção de sites existe executando Get-SPSite. Verifique o caminho gerenciado (por exemplo /sites/ ou /teams/) e o nome do site quanto a erros de digitação. Use o parâmetro -Limit ALL para listar todas as coleções de sites se você não tiver certeza da URL exata.

Erro de web part “List Does Not Exist” após correção de URL

Quando uma web part referencia uma lista usando uma URL relativa ao servidor, a URL deve apontar para uma lista dentro do mesmo site ou subsite. Se a lista estiver em um subsite diferente, use a URL absoluta completa ou métodos de consulta entre coleções de sites. Para corrigir, edite a web part e altere a URL para apontar para uma lista no site atual, ou use a API de Pesquisa do SharePoint para recuperar dados de outros sites.

URL relativa ao servidor vs URL absoluta: principais diferenças

Item URL relativa ao servidor URL absoluta
Formato Começa com / e inclui o caminho gerenciado, ex.: /sites/marketing Começa com protocolo e domínio, ex.: https://contoso.sharepoint.com/sites/marketing
Caso de uso Navegação interna, conexões de web part, scripts PowerShell dentro do mesmo farm Links entre farms, notificações por e-mail, links de compartilhamento externo
Portabilidade Quebra se a coleção de sites for movida para um domínio ou aplicativo web diferente Permanece válida enquanto o domínio estiver acessível
Erro comum “Server Relative URL Must Start With SPWeb Server Relative URL” “404 Not Found” se o domínio ou caminho estiver incorreto

Agora você sabe por que o erro “Server Relative URL Must Start With SPWeb Server Relative URL” ocorre e como corrigi-lo tanto no PowerShell quanto no SharePoint Designer. Sempre verifique se sua URL relativa ao servidor começa com a propriedade ServerRelativeUrl do objeto SPWeb. Para links de navegação que apontam para outras coleções de sites, use a URL absoluta. Como dica avançada, ao escrever código personalizado, use a propriedade SPWeb.ServerRelativeUrl como base e anexe caminhos com o método SPUtility.ConcatUrls para evitar problemas com barras finais.

ADVERTISEMENT