Estou armazenando folhas de estilo em {root} / styles enquanto imagens em {root} / images para um site. Como forneço o caminho nas folhas de estilo para procurar no diretório de imagens as imagens especificadas?
por exemplo em background-image: url('/images/bg.png');
html
css
relative-path
Aateeque
fonte
fonte
Aqui está tudo o que você precisa saber sobre caminhos de arquivo relativos:
Começando com
/
retorna ao diretório raiz e começa aíComeçar com
../
move um diretório para trás e começa aíComeçar com
../../
move dois diretórios para trás e começa aí (e assim por diante ...)Para avançar , basta começar com o primeiro subdiretório e continuar avançando.
Clique aqui para mais detalhes!
fonte
Use
../
:Você pode usar isso quantas vezes quiser, por exemplo,
../../images/
ou mesmo em posições diferentes, por exemplo../images/../images/../images/
(o mesmo que é../images/
claro)fonte
No Chrome, quando você carrega um site de algum servidor HTTP, ambos os caminhos absolutos (por exemplo
/images/sth.png
) e os caminhos relativos para algum diretório de nível superior (por exemplo../images/sth.png
) funcionam.Mas!
Quando você carrega (no Chrome!) Um documento HTML do sistema de arquivos local, você não pode acessar os diretórios acima do diretório atual.
../something/something.sth
Ou seja, você não pode acessar e mudar o caminho relativo para absoluto ou qualquer outra coisa não ajudará.fonte
../
funcionam bem - ou pelo menos funcionam bem neste caso específico!Suponha que você tenha a seguinte estrutura de arquivos:
No CSS você pode acessar
image1
, por exemplo, usando a linha../images/image1.png
.NOTA : Se você estiver usando o Chrome, ele pode não funcionar e você receberá uma mensagem de erro informando que o arquivo não foi encontrado. Eu tive o mesmo problema, então eu apaguei todo o histórico do cache do Chrome e funcionou.
fonte
Se você armazena folhas de estilo / imagens em uma pasta para que vários sites possam usá-los, ou se deseja reutilizar os mesmos arquivos em outro site no mesmo servidor, descobri que meu navegador / Apache não permite que eu vá para qualquer pasta pai acima do URL raiz do site. Isso parece óbvio por razões de segurança - não se deve conseguir navegar no servidor em qualquer lugar que não seja as pastas da web especificadas.
Por exemplo. não funciona: www.mywebsite.com/../images
Como solução alternativa, eu uso links simbólicos:
Vá para o diretório de www.mywebsite.com Execute o comando ln -s ../images images
Agora www.mywebsite.com/images irá apontar para www.mywebsite.com/../images
fonte