Ruta relativa a php. Enlaces absolutos y relativos

Como saben, en el parámetro href de la etiqueta () debe especificar la ruta al archivo al que se realiza el enlace.
Muchos escriben algo como http://somesite.ru/catalog/doc.html. Sí, nadie discute, funciona. Pero hay un "pero". Veamos un ejemplo.

Deje que su sitio esté alojado, por ejemplo, en algún alojamiento gratuito y su dirección sea la siguiente: http://fsite.freehosting.ru.
Hay alrededor de 100 documentos en el servidor. Entonces decidió transferir su sitio a otro dominio,
que se pague alojamiento en la zona ru: http://site.ru. Bueno, ¿ahora cambia http://fsite.freehosting.ru a http://site.ru en todas partes?
Sí, gracias a editores como homesite, es posible. Pero esta no es la salida.
Suponga que antes de subir una página al servidor, comprueba su rendimiento
en su servidor apache doméstico (para aquellos que aún no saben qué es un "servidor doméstico" - aquí (Instalación y configuración del servidor apache), y en lugar de http://localhost, deberá escribir http://sitio .ru en todas partes De acuerdo en esto, al menos incómodo.

La salida es que, al especificar la ruta al archivo, tenga en cuenta no su posición en el sitio, sino su posición en el servidor.

camino absoluto

Tome, por ejemplo, el archivo doc.html, que se encuentra en: http://somesite.ru/catalog/doc.html. En el servidor, como saben, hay una carpeta www. Como podemos ver en la dirección, esta carpeta contiene la carpeta del catálogo y el archivo doc.html ya está en ella.

Si, al especificar una ruta a un archivo, antepone la dirección con /, entonces será similar a lo siguiente: root_directory_north/www/path to the file.
Es decir, http://somesite.ru/catalog/doc.html es similar a lo siguiente: /catalog/doc.html.
Entonces, cuando hay un / delante de la dirección, significa que el "conteo" comienza desde el directorio www.
Ahora, en lugar de http://localhost/index.html desde cualquier documento, puede escribir /index.html.
Pero para llegar al directorio cgi, debe escribir así: / cgi-bin / ruta al archivo.

Las rutas creadas con los métodos descritos anteriormente se denominan absolutas, porque se especifica la ruta absoluta (completa) al archivo en el servidor.

Camino relativo

También hay rutas relativas, que son relativas al propio documento de donde proviene el enlace.
Por ejemplo, si crea un enlace newcat/new.html en doc.html, esto implica que el archivo new.html está en el directorio newcat, que a su vez está en el mismo directorio que el archivo doc.html. Como puede ver, esta ruta es relativa al archivo doc.html. Dondequiera que se encuentre este archivo, la ruta newcat/new.html siempre será válida si el archivo doc.html y el directorio newcat están en el mismo nivel (es decir, en el mismo directorio).

También puede subir un directorio en relación con un documento. Para hacer esto, escriba ../.
Por ejemplo, hay un directorio grande, contiene dos directorios: primario y secundario. El directorio principal contiene el archivo familiar doc.html; y en el directorio secundario está el archivo new.html. Para crear un enlace al archivo new.html desde el archivo doc.html, debe escribir ../secundario/nuevo.html. Pero si el directorio grande está ubicado en el directorio www, entonces la ruta al archivo new.html podría especificarse así: /big/secondary/new.html

Más que una conclusión, cabe decir que el uso de rutas absolutas y relativas facilita mucho el trabajo de los webmasters, ya sean principiantes o profesionales. Así que aproveche esta oportunidad, como dicen, al máximo, e intente evitar rutas como http://site.ru/catalog/file.file, o al menos recurra a su ayuda lo menos posible.

Bueno malo

caminos absolutos


En este caso, todo es muy simple, especificamos una ruta directa a un archivo ubicado en un dominio diferente. Es posible especificar una ruta abreviada mediante el uso de dos barras al principio sin especificar explícitamente http o https, y el propio servidor sustituirá el protocolo requerido (extensión) de acuerdo con la configuración del servidor. Es importante señalar que esta vista es necesaria para navegar entre sitios:
http://google.com

Con respecto a la raíz del sitio


En este caso, el navegador toma el dominio del sitio y lo sustituye por el enlace especificado. En este caso será http://sitioweb/css/estilo.css. En el caso de http, no es necesario vaporizar https, ya que se tomará en la forma en que la página está actualmente abierta, es decir, con http será http. También es muy conveniente para transferir alguna funcionalidad entre diferentes sitios o transferir un sitio de un dominio a otro sin tocar el código. La forma preferida de especificar rutas a páginas y archivos.

Acerca de esta página


Un método menos popular, ya que toma la página actual y agrega una nueva dirección a su ruta..com/trick/css/style.css. Prácticamente imposible de usar en los casos en los que usamos CNC.

Usando la etiqueta base


En este caso, en lugar de la sustitución de dominio estándar, la ruta desde la base se sustituirá por la ruta relativa. Es decir, recibiremos un archivo ubicado:
http://sitioweb/trucos/css/style.css

Rutas relativas y absolutas en PHP

Todo es muy simple, trabajando en el sistema de archivos, cumpliremos con las reglas para trabajar con rutas en PHP. Si pasamos el comando al navegador del cliente, aquí se usan las rutas HTML. Es decir, en el siguiente ejemplo, desde PHP le pasamos la ruta al navegador con la página a la que debe ir. El hecho de que el navegador hizo la transición entre páginas se puede ver en la barra de direcciones:
header("Ubicación: /pagina2.php");
En total, abrimos la página page1.php, y page2.php está escrito en la barra de direcciones, y el punto es que el navegador PRIMERO cargó la página page1.php, y luego recibió información con una redirección y CARGÓ la segunda página pagina2.php. En este caso, la redirección estaba en el lado del cliente (navegador), lo que significa que usamos las reglas relacionadas con HTML (dirección web).

Ruta absoluta en PHP

Una ruta absoluta en PHP se trata como una ruta absoluta desde el directorio donde está instalado el servidor web. Esta ruta se puede obtener de:
$_SERVIDOR["DOCUMENT_ROOT"]
Si tomamos este servidor como ejemplo, su ruta es: /home/school/public_html/schoolphp , por lo que para especificar la ruta completa a la foto "/photo/img1.jpg", debe especificar la siguiente ruta:
getimagesize("/home/school/public_html/schoolphp/photo/img1.jpg"); getimagesize($_SERVER["DOCUMENT_ROOT"]."/photo/img1.jpg");
Quiero señalar que el sitio se puede ubicar en un subdirectorio, es decir, para:
http://sitio/foro/
puede ser extremadamente difícil usar DOCUMENT_ROOT, porque el foro (como un script externo) aún no sabe dónde se colocará en el sitio. Hay varias formas de lidiar con este problema, enumeremos algunas:

1) Crear una página como subdominio.

2) Escriba la ruta absoluta en la configuración en config.php, es decir:
Core::$RAÍZ = $_SERVIDOR["DOCUMENTO_RAÍZ"]; getimagesize(Core::$ROOT."/photo/img1.jpg"); // usa una ruta absoluta que se puede modificar
Ahora puede vincular todo el sitio a Core::$ROOT sin remordimientos, y si accidentalmente necesita cambiar la ruta al archivo incluido, puede anular el valor de Core::$ROOT;

Respecto al archivo de inicio (base)

En muchos sistemas index.php hay un solo punto de entrada, es decir, se abre index.php y se conectan otros archivos desde él.
incluir "./módulos/todas las páginas.php";
En este caso, allpages.php se incluirá en la ruta: /home/school/public_html/schoolphp/modules/allpages.php . Este método es conveniente porque si escribes include en el archivo allpages.php: include "./modules/module/page.php";, aún se buscará en relación con el punto de entrada, es decir, index.php:
/home/school/public_html/schoolphp/modules/module/page.php
Una implementación bastante conveniente para tener en cuenta que conocemos claramente la estructura de nuestra aplicación en relación con la raíz index.php. Incluso si llamamos a cualquier otro archivo, no a index.php, las rutas funcionarán exactamente de la misma manera. Llamamos a dir.php , lo que significa que, en relación con el archivo dir.php, ¡se tomarán las rutas!

Qué más necesitas saber

No pude evitar recordar a los que se olvidaron o sugerir a los que no saben que se puede retroceder no solo en lo profundo de los directorios, sino también hacia arriba (carpetas atrás), y su sintaxis es bastante sencilla:
incluir "../archivo.php";
En este caso, se tomará el directorio de este archivo o la raíz index.php y se devolverá 1 carpeta, el archivo "file.php" también se buscará allí.

DOCUMENT_ROOT no es la única opción para obtener la ruta raíz del sitio. Echemos un vistazo al manual: "El directorio raíz del documento donde se ejecuta el script actual es exactamente el especificado en el archivo de configuración del servidor". . Esto significa que en los casos en que la ruta se escriba incorrectamente en el archivo de configuración, el sitio completo no funcionará. ¿Qué hacer? Puede escribir a los administradores y propietarios del alojamiento que aloja el servidor con la esperanza de que corrijan sus deficiencias. O busque una alternativa estable, que es __DIR__ , que es la ruta absoluta al archivo dado donde se ejecuta el código del archivo. Digamos que tenemos un archivo de configuración en la carpeta de configuración, y para que al usar __DIR__ no regrese cada vez que se abre 1 carpeta escribiendo __DIR__ "/../" podemos escribir con seguridad __DIR__ en nuestra variable, escribí el ejemplo a continuación en el propiedad de clase (lección No. 24, quien no alcanzó, use la variable habitual):
Núcleo::$RAÍZ = __DIR__; // O para PHP antiguo - dirname(__FILE__);
También quería recordarles algo interesante e importante. De acuerdo con la seguridad, el servidor web prohíbe moverse a través de directorios por encima de la raíz del sitio. Es decir, el sitio está ubicado en la siguiente ruta: /home/school/public_html/schoolphp , pero la lectura del contenido de las carpetas /home o /home/school no estará disponible.

¿Puede PHP usar rutas HTML? Sí, en funciones especiales, por ejemplo:
file_get_contets("http://sitio");

Práctica

En mis proyectos anteriores, usaba DOCUMENT_ROOT, ahora cambié a las rutas relativas de index.php "./carpeta/archivo".

Zend2, un producto de los desarrolladores de PHP, uno de los FrameWork más complejos que actualmente utiliza también rutas relativas con una sintaxis diferente a la mía, es decir, "carpeta/archivo".

El foro IPB.3 usa dirname(__FILE__).

Conclusiones:

1) En HTML, usamos rutas relativas a la raíz del sitio, a saber, "/file.php" (La línea comienza con barra oblicua).
2) en PHP usamos relativo al archivo raíz "./file.php" (La línea comienza con puntos y barras), una alternativa sería usar una propiedad inicializada en la raíz: __DIR__;
3) La redirección del encabezado utiliza rutas de HTML. PHP trabajando con el sistema de archivos (conectando archivos, guardando y editando imágenes) - con rutas de PHP.

Al desarrollar un sitio, a menudo tiene que escribir rutas a archivos, enlaces a documentos, páginas.
En los libros sobre tecnología informática, a menudo puede encontrar el uso de los términos rutas absolutas y relativas a los archivos. A menudo, el autor no explica qué significa este o aquel camino. Por lo tanto, el lector se confunde cuando el autor habla posteriormente sobre el uso de caminos absolutos y/o relativos.
Digamos que tiene un sitio web y necesita crear un hipervínculo (enlace) a una de las páginas del sitio. Aquí debe elegir qué tipo de ruta usar: relativa o absoluta.

Es muy importante entender dónde se necesita qué ruta y es mejor usarla. Solo hay una forma de especificar una ruta absoluta. Pero lo relativo, en contraste con lo absoluto, tiene varios usos.
Más información sobre cómo y dónde se utiliza rutas de archivo absolutas y relativas Trataré de decírtelo hoy.

Dado que dedico la mayor parte de mi tiempo a las tecnologías web, daré ejemplos relacionados con la creación de sitios.

camino absoluto

Cuando el enlace es la URL completa de un archivo o página, es camino absoluto. En este caso, el protocolo utilizado debe estar presente en la dirección. Por ejemplo, http://www.sitio es la ruta absoluta a un sitio web específico. En este caso, la ruta absoluta a la página principal de mi blog. donde esta el protocolo http, A www.sitio nombre de dominio).

Si especifica un enlace a un directorio, por ejemplo http://tudominio.ua/web/ luego se cargará (se mostrará) el archivo de índice. Esta regla se aplica principalmente a los sitios estáticos. Dado que al usar un lenguaje de programación, puede crear un enrutamiento interno. archivo de índice generalmente un archivo llamado índice.php, índice.html, índice.phtml, índice.shtml. Para usar otro archivo de índice, debe crear un archivo llamado .htaccess en el directorio deseado y escribir alguna directiva en él. La modificación y creación de un archivo .htaccess, así como el enrutamiento con un lenguaje de programación, están fuera del alcance de este artículo.

Básicamente, se usa una ruta absoluta cuando necesita vincular a otro sitio. En otras palabras, si desea enviar al visitante a otro sitio, debe utilizar una ruta absoluta. Aunque, esta ruta se puede utilizar en su propio sitio. Pero muchos se adhieren al hecho de que los enlaces dentro del sitio deben ser relativos.
El uso de una ruta absoluta puede causar algunos problemas. Por ejemplo, al transferir un sitio desde una máquina local a un servidor (esto es si usó direcciones en la máquina local en la forma http://localhost/sitename.ua/…). Pueden surgir dificultades cuando sea necesario cambiar el dominio (nombre del sitio). Aunque, todas estas dificultades son solucionables, pero tendrán que pasar una cierta cantidad de tiempo.
Cuando hay contras, también debe haber pros. Tomemos, por ejemplo, una situación en la que se roba contenido de su sitio. En la práctica, más de una vez me he asegurado de que el texto sea robado por completo, sin dejar un enlace de regreso al original. Entonces, cuando usa rutas absolutas, puede obtener vínculos de retroceso del sitio donde se encuentra el contenido robado. Pero esto es solo si su enlace interno se realizó utilizando rutas absolutas. Si bien esto no siempre funciona, más de una vez he notado enlaces de otros sitios donde se encontraba mi contenido.

Desviándome un poco del tema, quiero hablar brevemente sobre eso. que es la url.

Cada página web o documento en Internet tiene su propia dirección única, que se llama URL.
URL- un localizador uniforme (localizador) del recurso. URL significa Localizador Uniforme de Recursos (Uniform Resource Locator). También puede encontrar un descifrado como el Localizador de recursos universal (localizador de recursos universal). Esta forma de escribir una dirección está estandarizada en Internet. El sistema de identificación de recursos URI más general y más amplio está reemplazando gradualmente el término URL.
URI es una cadena de caracteres que identifica algún recurso: documento, archivo, etc. Por supuesto, esto se refiere a los recursos de Internet.

Camino relativo

A menudo, las rutas relativas se usan con mucha más frecuencia que las rutas absolutas. Básicamente, se especifica una ruta relativa cuando necesita enviar a un visitante a otra página de su sitio o insertar un objeto (como una imagen) en una de las páginas. En este caso, el uso de relativo al camino está bastante justificado. Dependiendo de la estructura del sitio, depende de qué forma de ruta relativa usar. Hay dos tipos de ruta relativa: ruta relativa al documento, ruta relativa a la raíz del sitio.

Ruta relativa del documento

Exactamente ruta relativa al documento utilizado con mayor frecuencia. Dichos enlaces también se denominan enlaces locales. Básicamente, esta ruta se usa cuando el documento (página) actual y el asociado están en el mismo directorio. Si mueve el documento a otro directorio, tendrá que cambiar la ruta (enlace). Aunque también puedes enlazar a documentos (páginas) de otros directorios. Para hacer esto, la ruta se escribe desde el documento actual hasta el documento de destino (página). En este caso, la ruta relativa al documento debe configurarse según la estructura del directorio.
Tomemos por ejemplo la estructura más simple de un sitio estático.

Supongamos que cada imagen en el directorio imágenes debe insertarse en las páginas correspondientes inicio.html, productos.html, contacto.htm yo Para insertar una imagen, por ejemplo, en la página "home.html", debe especificar la ruta donde se encuentra la imagen. Si usa una ruta relativa al documento, deberá escribir lo siguiente en el código de la página:

Este código para insertar una imagen en una página está incompleto. Dado que no contiene varios atributos importantes como ancho, alto, etc. Atributo origen, aquí sirve para especificar la ruta al archivo. Todos los demás atributos se omiten aquí, ya que ahora no son tan importantes. Lo principal ahora es que tiene una idea de cómo se ve la ruta en relación con el documento.
Cuando se utilizan rutas relativas al documento, falta la parte de la ruta absoluta. Aquí se trunca parte de la ruta absoluta, tanto para el documento (página) actual como para el vinculado. Aquí solo se utiliza la parte de la ruta que siempre está cambiando.
Permítame recordarle una vez más que al usar la ruta relativa al documento, debe tener en cuenta la ubicación original de los archivos.

Imagine una situación en la que una página productos.html, no estará ubicado en el directorio raíz del sitio (como estaba en el ejemplo anterior), sino en un subdirectorio. Ahora necesitas insertar la imagen en el archivo. productos.html, que se encuentra más profundo que el directorio raíz del sitio.

Para insertar una imagen en un archivo productos.html necesita volver al directorio raíz. Después de eso, puede usar la ruta ya conocida, que se mencionó anteriormente.

Como puede ver en el código anterior, ahora se ha agregado lo siguiente a la ruta: ../ . Sólo esta secuencia de caracteres ../ y sirve para mover un directorio (nivel) más arriba en la jerarquía de directorios. La ruta en el código anterior se puede leer así: "Mover un directorio hacia arriba (hacia atrás), ir al directorio imágenes y toma el archivo de ahí productos.png«.
Si ../ significa mover un directorio (nivel) más arriba en la jerarquía de directorios, luego el símbolo / significa bajar un nivel.
Secuencia de caracteres ../ Se puede utilizar varias veces a lo largo del camino. Por ejemplo, si el archivo productos.html muévase a tres directorios anidados uno dentro del otro, deberá usar el siguiente código:

Como puede ver en los ejemplos anteriores, usando rutas relativas al documento justificado en muchos casos. Este tipo de ruta se usa a menudo en la práctica y se puede aplicar en casi cualquier situación. Como dije anteriormente, también hay una ruta relativa a la raíz del sitio, que se discutirá a continuación.

Ruta relativa a la raíz del sitio

Probablemente ya se haya dado cuenta de que las rutas relativas al documento se usan mucho. Pero hay un problema con su uso. Lo cual radica en que al cambiar la estructura de directorios habrá que cambiar las rutas.
Pero este problema se puede resolver usando rutas relativas a la raíz del sitio. Donde se especifica la ruta desde el directorio raíz hasta el documento.
Todas las rutas relativas a la raíz del sitio comienzan con el signo / . Solo aquí, a diferencia de las rutas relativas al documento, este signo se usa para indicar el directorio raíz. Porque se usa al principio del camino.
La ruta relativa a la raíz del sitio le permite mover algunos archivos sin dañar los enlaces. Solo puede usar este tipo de ruta en un servidor web en Internet o en un servidor web ubicado en la máquina local.

El servidor web en la máquina local puede ser - . Lo que le permitirá crear un entorno en su computadora para crear sitios y sus pruebas preliminares.

La ruta relativa raíz no contiene ni el protocolo http ni el nombre de dominio. Y como dije, comienza con la indicación del símbolo / , que apunta al directorio raíz. Este directorio suele contener el archivo de índice de la página principal.

Por ejemplo, /imagenes/productos.png significa que el archivo productos.png esta en la carpeta imágenes, que se encuentra en el directorio raíz.

La forma más sencilla de determinar la ruta relativa raíz es tomar una ruta absoluta y omitir http:// y el nombre de host.

Ejemplo
A veces es necesario que la información de una página sea utilizada por otras páginas del sitio. A menudo, esto se hace para reducir la cantidad de código repetido en cada página. Digamos que hay un archivo _contacto.html, que contiene información sobre números de teléfono, correo electrónico y contiene una imagen contacto.png. (Que sea una pequeña tabla que se ubicará en cada página del sitio).

El siguiente código es para insertar la imagen "contact.png".

El código que se necesita para insertar un archivo en otro está fuera del alcance de este artículo. Todo depende del lenguaje de programación utilizado.

Espero que ya sepa qué tipo de ruta se utilizó en el código anterior. De lo contrario, consulte la definición de ruta relativa al documento anterior.
Ahora, cuando un visitante visita páginas del sitio como inicio.html, contacto.ntml, verá una página perfectamente renderizada. Cada uno tiene un archivo adjunto. _contacto.html, que a su vez contiene una imagen contacto.png.
En otras palabras, yendo, por ejemplo, a la página inicio.html, sucede lo siguiente: "Se está ejecutando el código de la página principal inicio.html. Luego se inserta y ejecuta el código de la página. _contacto.html. código de página _contacto.html, dice que vaya al directorio imágenes y tomar una imagen de allí contacto.png«.
Si omite el código de inserción en sí, entonces todo funciona bien. Pero si ejecutas la página productos.html, entonces ocurrirá un error. Dado que el código intentará encontrar el directorio imágenes y archivo contacto.png en el directorio productos. Pero ese directorio no existe allí, por lo que realmente surge el problema.
Queda claro que no puede usar una ruta relativa al documento aquí.
Por supuesto, puede usar una ruta absoluta aquí. Hablé sobre los pros y los contras de este enfoque anteriormente.
En términos generales, esta es una de las situaciones en las que necesita usar una ruta relativa a la raíz del sitio. Cuando se utiliza una ruta relativa a la raíz del sitio, el enlace siempre comenzará desde el directorio raíz (raíz del sitio). Este tipo de ruta le permitirá utilizar un código de inserción, como una imagen, independientemente de la jerarquía del sitio y sus directorios.
El uso de una ruta relativa a la raíz del sitio en el ejemplo anterior evitará problemas al insertar una imagen. Porque no importa dónde use este tipo de ruta, siempre encontrará el archivo especificado en él.
La ruta es relativa a la raíz del sitio, muy similar a la ruta relativa al documento. Para crear una ruta relativa a la raíz del sitio, debe agregar el símbolo / al principio del camino.

Ahora la imagen se insertará correctamente en cualquiera de las páginas del sitio.

Espero haberte ayudado un poco a entender qué caminos existen, cuándo y dónde se usan. Ahora puede usar todos los tipos de ruta para el propósito previsto.

En este tutorial, explicaremos a los principiantes qué es una ruta absoluta y relativa a un archivo, y también en qué caso cuál es mejor usar. Si ya está familiarizado con este tema, puede pasar a la siguiente lección.

Entonces, comencemos con la definición del término "ruta" en sí:

Ruta (ruta en inglés): un conjunto de caracteres que muestra la ubicación del archivo en el sistema de archivos, la dirección del directorio.

Wikipedia

Si hablamos de sitios, entonces la ruta es la misma que el enlace. Los enlaces pueden ser absolutos o relativos. Consideremos ambas opciones con más detalle.

¿Cuál es la ruta absoluta a un archivo?

https://www.google.com/images/branding/googlelogo.png

Se puede usar una ruta absoluta en CSS. Por ejemplo, para establecer una imagen como fondo, puede tomar la URL absoluta del archivo de imagen Y especificarla en la hoja de estilo:

Imagen de fondo: url(http://www.example.com/img/bg.png);

¿Qué es una ruta de archivo relativa?

Con una dirección relativa, todo es mucho más interesante: se puede contar tanto desde la raíz del sitio como desde el documento actual. Ruta relativa raíz es una ruta que indica la ubicación del archivo en relación con el directorio raíz del sitio. En este caso, la dirección no contiene ni un protocolo ni un nombre de dominio y comienza con un carácter de barra inclinada / , que apunta a la carpeta raíz. Esta dirección se ve así:

Imagen de fondo: url(/img/bg.png);

¿Cómo determinar fácilmente la dirección relativa raíz? Simplemente tome un enlace absoluto y elimine el protocolo y el nombre de dominio, dejando la barra inclinada y todos los caracteres que siguen.

Ruta de archivo relativa del documento es la ruta al archivo relativa al documento actual. Dicha dirección depende de la ubicación del archivo en el que está escrita. Por ejemplo, cuando se especifica un enlace relativo en una hoja de estilo, calcula la ruta del archivo en función de la hoja de estilo, no de la página web actual o la carpeta raíz. Demos algunos ejemplos.

ejemplo yo

Si nuestra hoja de estilo style.css y el archivo de imagen de fondo bg.png están en la misma carpeta (no necesariamente en la raíz), entonces la ruta relativa de la tabla a la imagen se verá así:

Imagen de fondo: url(bg.png); /* solo escribes el nombre del archivo */

Ejemplo II

Si la hoja de estilo está en la raíz y la imagen está en la carpeta img, el enlace relativo sería:

Imagen de fondo: url(img/bg.png); /* la barra al principio no es necesaria */

Ejemplo III

Si la hoja de estilo está en una carpeta y la imagen está junto a esta carpeta, la ruta relativa será:

Imagen de fondo: url(../bg.png); /* dos puntos - subir un nivel */

Ejemplo IV

Si la hoja de estilo se encuentra en dos carpetas y la imagen se encuentra junto a la primera carpeta, la ruta relativa será la siguiente:

Imagen de fondo: url(../../bg.png); /* sube dos niveles */

Dos puntos y una barra oblicua al principio de una ruta relativa significan subir un nivel. Dependiendo de la cantidad de niveles (directorios) que necesite escalar, debe escribir la cantidad requerida de puntos con una barra oblicua. Por ejemplo, si la hoja de estilo no está en dos, sino en cuatro carpetas, la entrada, respectivamente, será la siguiente:

Imagen de fondo: url(../../../../bg.png);

Si la imagen está oculta en la carpeta img y la hoja de estilo está en la carpeta css, deberá salir de la carpeta css e ir a la carpeta img. Como esto:

Imagen de fondo: url(../img/bg.png);

Si hay varias carpetas, también debe registrarlas. Cambiemos el ejemplo anterior: imagina que en la carpeta img hay otra carpeta backgrounds, que contiene nuestra imagen. La ruta relativa sería:

Imagen de fondo: url(../img/backgrounds/bg.png);

¿Qué manera es mejor usar?

Dirección de enlace absoluta deberá usarse si el archivo al que está enlazando se encuentra en otro sitio. Dentro del mismo sitio, la ruta absoluta prácticamente no se usa (aunque funcionará). Esto se debe a varios puntos: en primer lugar, dichos enlaces pueden ser muy engorrosos y, en segundo lugar, si el nombre de dominio cambia, habrá un problema: todos los enlaces conducirán al dominio anterior, lo que puede generar muchos errores y enlaces rotos. .

Ruta relativa raíz funcionará en un servidor web, pero es inútil cuando se desarrolla en una máquina local. Pero la ventaja de este tipo de enlaces es que puede mover su hoja de estilo a cualquier carpeta del sitio y no tener miedo de que las direcciones de la imagen de fondo se rompan.

Ruta relativa desde el documento- la mejor opción para el desarrollo web en una máquina local sin usar un servidor. En un navegador, podrá ver las páginas web almacenadas en su computadora normalmente y las direcciones de los archivos funcionarán. También funcionarán en un sitio en vivo, pero con una condición: si no mueve la hoja de estilo a otro lugar (de lo contrario, tendrá que ajustar las rutas).

Intente practicar el uso de rutas relativas tanto en su máquina local como en el servidor web. Comprender cómo funciona sin duda será útil en cualquier proyecto.

Más adelante en el tutorial: la propiedad background-repeat controla la repetición de la imagen de fondo.

Cualquier página web, imagen, video, etc. es, ante todo, un archivo que tiene su propio absoluto o relativo camino (dirección). El archivo en sí mismo en Internet se encuentra en una computadora llamada servidor. Por lo tanto, debe considerar cómo se presenta el archivo en el servidor y en Internet. En este artículo, me gustaría aclarar los puntos enumerados y aclarar el problema planteado. ¿lo intentamos?

Ruta absoluta (dirección)

¿Cuál es la ruta absoluta a un archivo?

camino absoluto o DIRECCIÓN es la ruta o dirección completa, relativa a carpeta de inicio en el servidor o nombre de dominio en internet.

Dicho " carpeta de inicio» Me refiero al comienzo del espacio asignado por el proveedor de hosting. Por ejemplo, si estamos hablando de un servidor local, en el sistema operativo Windows, la unidad misma, es decir, C: / , actuará como la carpeta de inicio. Al mismo tiempo, el proveedor de alojamiento a menudo asigna al usuario solo un determinado espacio virtual (condicional), para el cual una determinada carpeta, a menudo llamada /home, actúa como carpeta de inicio.

Dicho " Nombre de dominio Por "me refiero a una URL que comienza con un protocolo, por ejemplo: http://sitename.ru/ . En Internet, es él quien tiene la carpeta de inicio de cada uno de los recursos presentados.

¿Cómo averiguar la ruta absoluta en el servidor en PHP?

Si todo está más o menos claro con la URL, entonces la situación con la carpeta de inicio en el servidor es algo más complicada. Al final, cada proveedor tiene sus propios problemas y esto debe tenerse en cuenta.

Y comenzaré con el hecho de que la ruta absoluta en el servidor generalmente se determina en relación con la ubicación del script en el que esto sucede. Por ejemplo, el archivo config.php se encuentra en la carpeta raíz del sitio y necesitamos saber la ruta absoluta a él.

Voy a aclarar diciendo La carpeta raíz Por "me refiero a una carpeta en el servidor dedicada al sitio. Es esto lo que sirve como punto de partida de la URL en relación con el nombre de dominio.

Para hacer esto, puede usar la constante __FILE__, que contiene la ruta completa y el nombre del archivo actual en el que se llama. Para obtener solo la ruta completa y eliminar el nombre del archivo actual, puede usar la función dirname(), que devuelve el directorio principal de la ruta especificada. Por ejemplo:

$rutaabs = dirname(__FILE__) ."/";

En PHP 5.3 y versiones posteriores, ya puede usar la constante __DIR__:

$rutaabs = __DIR__

Por lo tanto, es muy conveniente incluir en el futuro el archivo config.php y utilizar como punto de partida la ruta absoluta de la variable $abspath obtenida en él. Por ejemplo, suponga que el script test.php está en la carpeta: ruta/ - y el archivo data.txt deseado está en la carpeta: data/ . En este caso, la llamada podría verse así:

include_once("../config.php"); $fh = fopen($rutaabs."/2013/12/data/data.txt", "r");

Tenga en cuenta que conecté el archivo config.php usando una ruta relativa, pero hablaremos de eso más adelante.

Ruta relativa (dirección)

¿Qué es una ruta de archivo relativa?

Camino relativo o DIRECCIÓN es una ruta o dirección, relativa a la ubicación del archivo, que hace referencia a otro archivo.

Cualquier sistema de archivos es una jerarquía estricta de carpetas y archivos principales y secundarios. Por ejemplo: C:\carpeta\archivo.php - donde carpeta\ es el elemento secundario de la unidad C:\ y el elemento principal del archivo archivo.php .

Para mayor claridad, consideremos la siguiente jerarquía:

  • archivo1.php
  • carpeta\
    • archivo.php
    • subcarpeta\
      • archivo3.php

Para acceder al archivo C:\file2.php desde el archivo C:\folder\file.php, necesitamos salir de la carpeta actual folder\ , es decir subir un nivel. Para esto, puedes usar carpeta (incluso diría pseudo-carpeta) directorio de padres, que son dos puntos (..) . En otras palabras, obtendremos la ruta: ..\file2.php - relativa a file.php .

Para acceder a C:\carpeta\subcarpeta\archivo3.php desde C:\carpeta\archivo.php , necesitamos ingresar a la subcarpeta\ , es decir bajar un nivel. Entonces obtenemos la ruta: subcarpeta\archivo3.php - relativa al archivo archivo.php .

Hagamos las cosas un poco más complicadas y pasemos de C:\carpeta\subcarpeta\archivo3.php a C:\archivo2.php . La ruta relativa se verá así: ..\..\file2.php - hemos subido dos niveles. Haz lo contrario, es decir, del archivo C:\file2.php pasamos al archivo C:\folder\subfolder\file3.php . La ruta relativa se verá así: carpeta\subcarpeta\archivo3.php - bajaremos dos niveles.

Ventajas y desventajas de una ruta relativa (dirección)

Obviamente, la ruta relativa no contiene la carpeta de inicio ni las carpetas principales. Así, la dirección final es más corta. Además, si necesita pasar de un dominio a otro, no será necesario registrar una nueva dirección absoluta.

Por otro lado, en el caso de citar el contenido del sitio, en otro recurso, con las mismas imágenes, en el que se especifica la ruta relativa, obtendremos un error, porque no hay carpetas ni archivos de sitio en un recurso de terceros. Esto sucederá si visualiza la página en el caché de los motores de búsqueda. Nuevamente, usar una ruta relativa puede fácilmente cometer un error que resulte en un problema de indexación del sitio.

Resumiendo, cabe señalar que el uso de una ruta o dirección relativa es deseable para minimizar y utilizar rutas y direcciones absolutas.

Conclusión

En mi artículo, traté de considerar un tema fundamental relacionado con las rutas absolutas y relativas (direcciones) a archivos y carpetas. De hecho, si trabaja en una computadora, a priori ya tiene una idea sobre el sistema de archivos, pero sin tener en cuenta algunos de los matices, es bastante difícil despegar y plantear una serie de cuestiones que inevitablemente se relacionan con la corrección del direccionamiento. Eso es todo para mí. Gracias por su atención. ¡Buena suerte!

a las 8:00 Editar mensaje 5 comentarios

Arriba