img etiqueta html hyperlink relative-path

html - etiqueta - relative path javascript



¿Por qué un desarrollador coloca una barra diagonal al inicio de cada ruta relativa? (3)

Añadiendo la respuesta de @ Oded , la barra hace que la URL sea absoluta.

Por ejemplo:

/foo/bar/baz.css

Esto se traduce a:

http://www.example.com/foo/bar/baz.css

Pero sin la barra, las cosas se vuelven un poco diferentes:

foo/bar/baz.css

Esto le indica al navegador que busque en la carpeta actual (no en la carpeta raíz) el directorio foo y luego los directorios posteriores y el archivo.

Además, tome por ejemplo este HTML:

<script type="text/javascript" src="foo.js"></script>

Si mueve el archivo HTML a otra carpeta, la secuencia de comandos no se cargará, ya que foo.js no se mueve con el archivo HTML.

Pero si usa una URL absoluta:

<script type="text/javascript" src="/foo.js"></script>

Entonces, el archivo JS se carga EXACTAMENTE desde http://www.example.com/foo.js sin importar dónde esté el archivo HTML.

Estoy examinando un código para un amigo, y he descubierto que el desarrollador que creó su sitio comenzó con cada src relativo, href e include una barra inclinada / .

Por ejemplo:

src="/assets/js/jquery.js"

Nunca he visto esto antes. Entonces mi pregunta es, ¿por qué un desarrollador colocaría una barra diagonal / al comienzo de una ruta relativa?


Está hecho para enraizar la ruta (convirtiéndola en una ruta absoluta).

Asegura que la ruta no es relativa, sino que se lee desde la raíz del sitio.

Esto le permite a uno mover un archivo y no tener que cambiar los enlaces a los diferentes recursos.

Usando tu ejemplo:

src="/assets/js/jquery.js"

Si el archivo de referencia está en /pages/admin/main.html (por ejemplo) usando rutas relativas que usaría:

src="../../assets/js/jquery.js"

Supongamos que mueve el archivo a un directorio secundario. No se necesitarían cambios con la ruta rooteada original, pero la relativa tendría que cambiar a:

src="../../../assets/js/jquery.js"


Esto es para asegurar que el activo proviene de la "raíz" del servidor web.

por ejemplo, Host es www.example.com La URL se convierte en www.example.com/assets/js/jquery.js

Lo hago con un proyecto que quiero asegurar vivo en su propio host virtual.

El problema realmente se reduce a dónde se incluyen esos activos. Por ejemplo, si el activo se incluye desde / help / pages / faq, el desarrollador puede estar seguro de que la ruta funcionará correctamente cuando el sitio esté alojado en un host que no cambia, por ejemplo, example.com.

La cuestión del uso de rutas relativas, ''assets / js / jquery.js'' es que si los activos se incluyen desde / help / pages / faqs, la ruta pasa a ser relativa a ese punto de partida, por ejemplo / help / pages / faqs / assets /js/jquery.js

Espero que ayude