2010-03-05 18 views
1

J'utilise codeigniter.Ajouter une barre oblique après l'URL déplace la zone sous le menu et le logo par-dessus

Ma page de produits montre tous les produits que nous avons, puis les utilisateurs peuvent cliquer sur chaque nom de produit pour obtenir plus de détails sur ce produit particulier. J'ai donc déclaré les produits comme classe et nom_produit en tant que fonction dans la classe de produit - afin que je puisse obtenir l'URL www.company.com/products/product_name. Quand je vais à www.company.com/products tout va bien, mais si j'ajoute une barre oblique finale, il ressemble à www.company.com/products/ ma fenêtre sous le logo et le menu se déplace sur elle cachant à la fois le logo et le menu. La même chose arrive quand je vais à www.company.com/products/product_name.

Comment puis-je m'assurer que la fenêtre ci-dessous ne se cache pas lorsque j'ajoute des barres obliques de fin ou lorsque je consulte des pages de nom de produit.

Toute aide serait appréciée.

Répondre

2

Le problème est que vous avez spécifié un chemin relatif pour vos images. Vous devez les rendre absolus, ou au moins par rapport à l'emplacement actuel. C'est-à-dire, si vous changez votre chemin d'image à partir de:

<img src="images/obsia.png"> 

à

<img src="/images/obsia.png"> 
or 
<img src="http://www.obsia.com/images/obsia.png"> 

Votre problème sera résolu. La raison pour laquelle cela se produit est parce que le chemin d'accès aux images est déterminé par l'URL de base. Lorsque vous êtes au http://www.obsia.com ou http://www.obsia.com/products, votre URL de base est http://www.obsia.com.

Pour le navigateur, alors images/obsia.png est rendu comme http://www.obsia.com/image/obsia.png, que votre serveur interprète comme wwwroot/images/obsia.png et le lien relatif fonctionne.

Cependant, si vous faites http://www.obsia.com/products/ votre URL de base est http://www.obsia.com/products et le chemin relatif pour vos images passe de http://www.obsia.com/images/obsia.png à http://www.obsia.com/products/images/obsia.png. Votre serveur interprète cela comme suit, que votre serveur interprète comme wwwroot/images/products/obsia.png, ce qui n'est pas un chemin valide. Le serveur renvoie un 404 --resulting dans les images brisées.

Vous pouvez le voir si vous utilisez le panneau .Net de Firebug. La demande pour votre logo renvoie:

GET obsia.png 
http://www.obsia.com/products/images/obsia.png 

404 Not Found 

obsia.com 

539 B 
+0

Il montre des liens brisés sur safari. Sur Firefox, il suffit de montrer. J'ai essayé la suggestion que vous avez faite, mais je n'arrive pas à la faire fonctionner. En outre, j'ai fait la même chose pour www.obsia.com/products et cela semble fonctionner correctement. Vous ne savez pas pourquoi la barre oblique arrière changerait le style? J'ai sorti la fenêtre et j'ai vu à la fois le logo et le menu à l'origine de la fenêtre. Donc, il semble que ça bouge juste en le cachant (je dois comprendre ce qui se passe dans Safari). – strangeloops

+0

strangeloops ... J'ai mis à jour ma réponse pour essayer de clarifier. La page telle qu'elle est actuellement * ne fonctionne * pas dans les 5 principaux navigateurs. (IE, Firefox, Safari, Opera ou Chrome) –

+0

ohhh attendez que cela ait un sens - c'est parce que l'image est sur www.obsia.com/images/obsia.png qui est dans le header_view.php. L'image apparaît sur www.obsia.com/products mais n'apparaît pas sur www.obsia.com/products/? Des indices maintenant. BTW merci de travailler avec moi. – strangeloops