J'ai une balise BASE comme ci-dessous dans la section tête de la page:
<base href="http://localhost/framework">
Et un script comme ci-dessous qui est relatif (bien sûr après la balise de base):
<script src="/assets/jquery-1.7.1.min.js">
Mais lorsque j'ouvre jQuery depuis Firebug, cela montre:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
Blah Blah Blah....
Lorsque j'utilise le lien ci-dessous, c'est OK:
<script src="http://localhost/framework/assets/jquery-1.7.1.min.js">
J'ai cherché des réponses partout, mais il semble que je fais bien mon travail! Alors quel est le problème?
/assets/jquery-1.7.1.min.js
N'est pas relatif mais absolu *, le /
Le prend à la racine même avec une balise base
.
Si vous supprimez ce /
, Il devrait le rendre relatif par rapport au chemin actuel, qui, lorsqu'une balise base
est présente serait http://localhost/framework/
.
Vous devrez également ajouter un /
À la fin du href
, pour indiquer qu'il s'agit d'un dossier.
Exemple de travail complet:
<!doctype html>
<html>
<head>
<base href="/test/" />
<script src="assets/test.js"></script>
<body>
hi
</body>
</html>
*
En fait, selon la personne à qui vous posez la question, c'est toujours relatif, car il est relatif hors du domaine actuel. Mais je préfère appeler cela absolu car cela signifie que le chemin provient de la racine, en fonction du domaine actuel. Bien que, je suppose que techniquement, cela le rend relatif dans le grand schéma des choses, et absolu uniquement en termes de domaine actuel. Peu importe.
Essayez d'avoir votre balise de base comme:
<base href="http://localhost/framework/">
et votre balise de script comme:
<script src="assets/jquery-1.7.1.min.js">