Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kineri

[Resolvido] Caminho relativo ou absoluto?

Recommended Posts

Depende do quão disposto a resolver problemas você estiver.

 

Se vocês fizer um site em HTML básico, sem nenhuma programação server-side (ou usar script CGI prontos - aliás, quem ainda faz isso?) usar caminhos relativos é o maior bicho de sete cabeças. Ex:

 

http://www.domain.com/year/month/day/article-XYZ-851-rede-cultura-sao-aulo.html
Você terá uma uma hierarquia mais ou menos assim:

 

/
/style/
/style/css/*
/style/images/*
E sua tag <link>, por exemplo, ficaria:

 

../../../style/css/styles.css
Ao passo que uma URL assim:

 

http://www.domain.com/year/month/day.html
A exemplo de uma listagem de itens de um dia específico, ficaria:

 

../../style/css/styles.css
Ou seja, a cada "nível" adicionado ou removido na estrutura hierárquica de diretórios, te forçaria a usar um path diferente.

 

Agora se você usa alguma linguagem de programação server-side que, por exemplo, faça re-escrita de URL's a coisa, em algum momento, só piora pois a URL é construída dinâmicamente logo, por exemplo, a URL inicialmente passada nem sempre refletiria a na estrutura proposta uma vez que, normalmente, a requisição é redirecionada ao arquivo principal (index.php, por exemplo) e esse arquivo, numa estrutura MVC faria a inclusão do arquivo correspondente.

 

Espero que lhe ajude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora se você usa alguma linguagem de programação server-side que, por exemplo, faça re-escrita de URL's a coisa, em algum momento, só piora pois a URL é construída dinâmicamente logo, por exemplo, a URL inicialmente passada nem sempre refletiria a na estrutura proposta uma vez que, normalmente, a requisição é redirecionada ao arquivo principal (index.php, por exemplo) e esse arquivo, numa estrutura MVC faria a inclusão do arquivo correspondente.

 

Não entendi essa parte. Foi pro caminho relativo?

 

Ainda não tenho o hábito de usar MVC, preciso aprimorar meu conhecimento um pouco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ambas as colocações foram para apontar as desvantagens de se usarcaminho relativo.

 

Desculpe se não ficou claro Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora sim =]

 

fora essa "comodidade" entre as duas, em termos de tempo de acesso (do browser), será que um é mais rápido que o outro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kineri, teoricamente caminhos relativos são mais rápidos, pois não dependem de nova consulta ao servidor DNS para resolver o caminho. Digo teoricamente porque em alguns cenários a diferença chega a ser imperceptível.

 

Edit: Outra vantagem, diminui o tamanho da marcação. Menos é mais. :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

hum.. até onde vi, caminhos absolutos são mais rápidos para os browsers, pois ai eles que não precisam resolver os relativos..

 

../../img/

 

e tal... pois o browser precisa transformar isso em absoluto para trabalhar.

o DNS vai ser resolvido de qualquer maneira.. isso não vai influenciar na velocidade de processamento.. apenas de 'carga' se você espalhar os teus arquvos por vários servidores... (oq chega a ser uma boa prática, se você quiser paralelizar os downloads)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Haha, coisas divididas, legal =P

 

Obrigado pelas informações galera!

 

Aproveitando o tópico:

 

Qual a diferença entre:

<a href="/script.php">
e

<a href="./script.php">
(notem o ".")

Compartilhar este post


Link para o post
Compartilhar em outros sites

o primeiro é absoluto.

 

o segundo é relativo.

 

simples assim..

 

com a barra

<a href="/script.php">
você vai obrigar o navegador a procurar no root.. e com o ponto-barra, ele só vai procurar na pasta atual.

 

Agora que vi o primeiro post.. então cara..

é tão imperceptível isso, que eu te aconselho a usar caminhos relativos.

Pelo simples motivo:

 

Portabilidade

 

 

Se você precisar migrar de servidor, ou de pasta, não precisa alterar todos os caminhos do teu site.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o absoluto procura na raiz do site (/public_html/, por ex) ou da hospedagem?

 

Sobre a portabilidade acredito que com liguagem de servidor não tenha muita relevância. Eu, por exemplo, costumo usar uma constante com a URL do domínio e uma com as principais sub pastas (imagens, css, javascript etc). Trocando a hospedagem, troca o valor de 1 variável e pronto =]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno, ambos os caminhos são relativos. Para se tornar absoluto, o caminho necessita de protocolo://dominio/caminho

 

No demais, foi perfeitamente explicado. O ponto antes do caminho indica que trabalhamos no diretório atual, enquanto apenas a barra nos remete ao root.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa só eu adicionar uma observação: existe a possibilidade de se trabalhar com caminhos absolutos, porém, sem a necessidade de se informar o domínio, por meio da tag <base />. Com essa tag, você informa a partir de onde todas as requisições de arquivos, links e imagens partirão. Exemplo:

<base href="http://www.meusite.com.br/" />
Com esse base definido, eu teria isso na página:
<a href="nome-da-pagina/">Nome da página</a><img src="imagens/imagem.gif" alt="Nome da imagem" /><script type="text/javascript" src="js/nome-do-arquivo.js"></script>
Em todos esses exemplos, é como se eu tivesse o domínio definido em <base /> antes dos nomes dos arquivos...

 

Há vantagens e desvantagens em utilizar isso, mas aí fica a critério de vocês descobrirem hehehe

 

:joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.