Rutas relativas en páginas cargadas con AJAX

Leunamal

Hola.

Os voy hacer una pregunta por si alguien sabría responderme.

¿Es posible mantener las rutas relativas de las páginas cargadas dinámicamente con ajax? Al entrar en las páginas cargadas solo consigo ver su portada, pero si quiero ir a ./nodo1.html (por poner un ejemplo) intenta buscar en el directorio raíz en vez de la ruta donde estaba la página.

Sería bastante trabajoso cambiar todas las rutas relativas a absolutas ya que son páginas generadas con latex2html y son bastantes.

Lo ideal es que para las páginas cargadas con AJAX si aparece un enlace que hace referencia a ./nodo1.html, lo haga a /mi-pagina/subdirectorio/nodo1.html y no a /mi-pagina/nodo1.html.

Saludos

Shendraf

Prueba a guardar la ruta del subdirectorio en un hidden de la página padre, entonces cuando generes la ruta completa sería: (valor del hidden) + "/nodo1.html"

l31m

Php no utilizas no?

De todas formas por si te vale esto:

//supongamos que es http://localhost/principal/subseccion/index.html
url = document.URL;

//aqui tendriamos la url en varias partes dividida por el caracter '/'
url_tmp = url.split('/');

//aqui montamos la url final que quedaria principal/subseccion/index.html
url_final = url_tmp[url_tmp.length-3]+'/'
                +url_tmp[url_tmp.length-2]+'/'
                +url_tmp[url_tmp.length-1];

//la imprimimos
document.write(url_final);

Logicamente jugando con esta funcion puedes partir la url y unirla como quieras.

Leunamal

Hola, muchas gracias a los 2 por contestar. Uso jsp, pero vamos que muchas cosillas las puedo adaptar de php a jsp.

#2 La idea esa parece buena. La de #3 también, pero no sé como cargar la nueva página con los enlaces con nuevas urls o las imagenes con su src actualizado. Os explico un poco la situación:

Tendría una página principal con un menu principal arriba y una zona central donde se carga las páginas que selecciono con el menú (usando ajax). Para que funcione tendría varios ficheros javascript: jquery, jquery.history, cargar_contdinamico.jsp, etc...

Esta parte funciona bien, el problema reside cuando abro una página con su propia navegación. Es decir, es una página cargada dinámicamente y tiene su propio menu para ir hacia la página siguiente, a la anterior, ir al índice, etc... Ésta página es un manual de una aplicación que consta de distintas secciones, cada sección es una página web que se accede desde el menú interno.

El problema está en que las rutas para ir a la siguiente sección del menú aparecen por ejemplo como: href="nodo1.html" ó "nodo2.html". Lo que comentaís podría conseguir que al pulsar a uno de esos enlaces que hace referencia a una página que no existe desde la página central se pudiese a la página "/pagina/manual/app1/nodo1.html", sin embargo, creo que no estaría bien porque realmente aparece nodo1.html y no /pagina/manual/app1/nodo1.html. Las imágenes tampoco se verían ya que intentarían buscar en el directorio raíz.

Buscando en google, encontré la etiqueta <base>. Esta etiqueta sirve para indicar en que directorio localizar los ficheros. Pero parece ser que debe haber algun bug o algo porque no funciona bien. Y ocurre lo mismo que comenté antes, si pongo el ratón encima de un enlace aparece: "localhost/pagina/nodo1" en vez de la ruta correcta. Con iframes parece ser que si va bien.

Lo ideal es que al abrir estas páginas apareciesen las rutas correctamente y las imágenes, pero no sé porque no funciona bien. Lo curioso es que no he encontrado a más gente que se haya planteado la misma duda (en español). Si teneis en favoritos alguna página, entrada de blog o algo aunque esté en ingles pasadmela por fa. Ya realmente he terminado de pasar las rutas a absolutas, pero me gustaría saber como hacerlo usando rutas relativas.

Un saludo y gracias.

Usuarios habituales

  • Leunamal
  • l31m
  • Shendraf