Respostas:
Use ..para indicar o diretório pai:
background-image: url('../images/bg.png');
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!
Use ../:
background-image: url('../images/bg.png');
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)
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.sthOu seja, você não pode acessar e mudar o caminho relativo para absoluto ou qualquer outra coisa não ajudará.
../funcionam bem - ou pelo menos funcionam bem neste caso específico!
Suponha que você tenha a seguinte estrutura de arquivos:
-css
--index.css
-images
--image1.png
--image2.png
--image3.png
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.
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