2011-11-21 10 views
11

Estoy intentando hacer una URL amigable para el usuario usando la reescritura en modo. Mi problema es que, después de asignar una categoría como 'nombre' a mi URL, cuando llamo a la página usando una URL nueva, no puede cargar el archivo o las imágenes CSS.Falta el archivo CSS y las imágenes después de reescribir la URL

Tengo un enlace como:?

localhost/misitioweb/proyecto de id = 22

Nuevo enlace es algo así como

localhost/misitioweb/proyecto/22/myproject.project

código

.htaccess:

RewriteRule ^project/([0-9]*)/.*\.project$ /project.php?project=$1 [L] 

(puede que no sea 100% correcto, pero no tengo acceso a mi código en este momento por lo que acabo de escribir esto y funciona bien en la fuente original)

Mi directorio raíz es localhost/misitioweb/

y mi archivo CSS está en css/style.css

localhost/misitioweb/css/style.css

mi htaccess

localhost/misitioweb/.htaccess

y mi archivo project.php está en

localhost/misitioweb/project.php

Así en la página del proyecto tengo acceso al archivo CSS usando la ruta relativa,

<link href="css/style.css" rel="stylesheet" type="text/css" /> 

pero cuando uso la página URL reescrita no puedo encontrar el archivo CSS.

No puedo usar la ruta absoluta con el nombre de dominio porque todavía no tengo el dominio. y puede ser cualquier cosa.

una forma es utilizar la ruta relativa al dominio como se sugiere en las preguntas similares localhost/misitioweb/project.php y cuando corro mi guión necesitas cigarros mi directorio raíz se localhost modo de enlace código CSS que

href = "misitioweb/css/style.css"

pero cuando voy en vivo i debe cambiar todos los enlaces que probablemente algo así como

href = "/ css/style.css"

esto parece como un montón de trabajo

Respuesta

26

para la versión local añadir

<base href="//localhost/mywebsite" /> 

a la sección de la cabeza

y para sus versiones en vivo cambiarlo a

<base href="//your.domain.here" /> 

de referencia en http://www.w3.org/TR/html4/struct/links.html#h-12.4

+0

Sí, pero también hay imágenes y no puedo cambiar el nombre de dominio para cada imagen después de publicar – max

+0

@max, la etiqueta 'base' también funciona con imágenes ... ejemplo en http://jsfiddle.net/gaby/JE656/ –

+0

¡Para mí, < funcionó como un amuleto! :) – jackkorbin

1

insertar una imagen en el mismo archivo con la misma ruta relativa como el enlace css href, cargar la página en un navegador, haga clic en la imagen en Internet explorador, haga clic en propiedades y debe ver en la ruta relativa en realidad apunta.

+0

Esta es una buena manera de averiguar dónde se encuentra en – Mattis

+0

:) Al parecer, debe incluir en él misitioweb enlazar primo localhost considera que es mi raíz y la carpeta/misitioweb/es simplemente otro directorio por lo que debe ser incluido en el enlace. No puedo cambiar todos los enlaces cuando estoy en vivo! – max

+0

No puede cambiar todos los enlaces de dificultad comprensible, así que mantenga todas las rutas relativas, pero ajuste cada ruta con la ubicación relativa correcta. Nota: no quise decir usar la ruta absoluta que quise decir, verificar la ruta absoluta y ajustar su ruta relativa hasta que lo haga bien. Puede usar ../ para subir una carpeta. – Ozzy

2

tiene que definir la ruta de la base o la ruta de vista del servidor en el connection.php y cada vez que quieres ese camino, hacer eso global. entonces esa variable será llamada b y las css o imágenes tomarán el camino completo.

por ejemplo $ SVP = "http://www.example.com/"

$ SVP mundial; echo $ SVP;

por lo

Cuestiones relacionadas