Question

J'ai un Angular.js webapp qui emploie ui-router (https://github.com/angular-ui/ui-router) w/parallèle vues nommées comme telles:

.state(
            'app.experience', {
                url: 'e/:experienceId',
                views: {
                    'center-pane@': {
                        templateUrl: 'partials/experience.html',
                        controller: 'ExperienceController'
                    }
                })

J'ai activé HTML5 pushState via

$locationProvider.html5Mode(true);

Lorsque

http://www.mysite.com/e/123

est demandé, mon backend renvoie la index.html dans le répertoire racine.(comme par À l'aide de HTML5 pushstate sur angular.js) Toutefois, lorsque le navigateur reçoit index.html et commence à chercher tous les css/js ressources, les demandes sont pour

/e/js/script1.js

par opposition à

/js/script1.js

qui n'existe au niveau de la racine.Il semble que par défaut le répertoire racine de mysite.com/e/ (à partir de l'url demandée) et non pas la racine, mysite.com/.

Il y a une chose qui me manque ici?Il n'est pas possible d'utiliser relatif croix de saint-andré pour mon javascript et css index.html?

Merci pour votre aide!

Était-ce utile?

La solution

Note:Vous n'avez pas montré votre comment HTML ressemble mais en fonction de votre question, je vais supposer que vous êtes pas l'utilisation d'url relatives partir de la racine du document.

Vous pouvez utiliser des url relatives, mais ils devraient être relatif basé sur la racine du document.

Ainsi, par exemple, vous pourriez avoir quelque chose comme ceci dans votre code html

<img src="images/foo.jpg" />

Vous devriez vraiment faire de cette façon (remarquer l'ajout de début '/' slash)

<img src="/images/foo.jpg" />

Ce n'est pas quelque chose de spécifique à angularjs, html, chose, voir cette réponse pour plus de détails.

La raison pour laquelle votre navigateur à l'aide de la /e/ dans l'url est parce que le le navigateur effectivement demandé une ressource qui a le /e/ dans l'url.Le navigateur ne sait pas que votre serveur a répondu avec un fichier qui n'est pas dans le /e/ répertoire.

Par conséquent, si vous avez une url relative, sans une barre oblique au début, il sera par rapport à la trajectoire ou l'original de la ressource demandée.Ce que vous voulez est d'utiliser des url relatives avec un slash au début.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top