Estoy almacenando hojas de estilo en {root} / styles mientras que las imágenes están en {root} / images para un sitio web. ¿Cómo doy la ruta en las hojas de estilo para buscar en el directorio de imágenes las imágenes especificadas?
por ejemplo, en background-image: url('/images/bg.png');
html
css
relative-path
aateeque
fuente
fuente
Aquí está todo lo que necesita saber sobre las rutas de archivo relativas:
Comenzando con
/
regresa al directorio raíz y comienza allí.Comenzar con
../
mueve un directorio hacia atrás y comienza allíComenzar con
../../
mueve dos directorios hacia atrás y comienza allí (y así sucesivamente ...)Para avanzar , simplemente comience con el primer subdirectorio y siga avanzando.
¡Haga clic aquí para más detalles!
fuente
Utilizar
../
:Puede usar eso tantas veces como desee, por ejemplo,
../../images/
o incluso en diferentes posiciones, por ejemplo../images/../images/../images/
(igual que,../images/
por supuesto)fuente
En Chrome, cuando carga un sitio web desde algún servidor HTTP, tanto rutas absolutas (p
/images/sth.png
. Ej. ) Como rutas relativas a algún directorio de nivel superior (p. Ej.../images/sth.png
).¡Pero!
Cuando carga (¡en Chrome!) Un documento HTML desde el sistema de archivos local, no puede acceder a los directorios por encima del directorio actual. Es decir, no puede acceder
../something/something.sth
y cambiar la ruta relativa a absoluta o cualquier otra cosa no ayudará.fuente
../
funcionan bien, ¡o al menos funcionan bien en este caso específico!Supongamos que tiene la siguiente estructura de archivos:
En CSS puedes acceder
image1
, por ejemplo, usando la línea../images/image1.png
.NOTA : Si está utilizando Chrome, es posible que no funcione y obtendrá un error de que no se pudo encontrar el archivo. Tuve el mismo problema, así que eliminé todo el historial de caché de Chrome y funcionó.
fuente
Si almacena hojas de estilo / imágenes en una carpeta para que varios sitios web puedan usarlas, o si desea reutilizar los mismos archivos en otro sitio en el mismo servidor, descubrí que mi navegador / Apache no me permite ir a cualquier carpeta principal por encima de la URL raíz del sitio web. Esto parece obvio por razones de seguridad: no se debería poder navegar por el servidor en ningún lugar que no sea las carpetas web especificadas.
P.ej. no funciona: www.mywebsite.com/../images
Como solución alternativa, utilizo Symlinks:
Vaya al directorio de www.mywebsite.com Ejecute el comando ln -s ../images images
Ahora www.mywebsite.com/images apuntará a www.mywebsite.com/../images
fuente