Nous avons une application d'entreprise qui utilise Angular 2 pour le client. Chacun de nos clients a leur propre URL unique, par exemple : https://our.app.com/customer-one
et https://our.app.com/customer-two
. Actuellement, nous sommes en mesure de définir dynamiquement le en utilisant document.location
. Donc, l'utilisateur accède à https://our.app.com/customer-two
et est défini sur /customer-two
...parfait !
Le problème survient lorsque l'utilisateur est par exemple sur https://our.app.com/customer-two/another-page
et qu'il actualise la page ou essaie d'accéder directement à cette URL, le est défini sur /customer-two/another-page
et les ressources ne peuvent pas être trouvées.
Nous avons essayé ce qui suit sans succès :
var base = document.location.pathname.split('/')[1];
document.write('<base href="http://stackoverflow.com/' + base + '" />');
...
Malheureusement, nous sommes à court d'idées. Toute aide serait incroyable.
1 votes
Avez-vous déjà essayé quelque chose avec APP_BASE_HREF ? Je ne suis pas tout à fait sûr de la façon dont cela serait mis en œuvre, mais il semble que ce soit quelque chose qui serait utile...
0 votes
Bien sûr, cela dépend définitivement de la version du routeur que vous utilisez actuellement. Êtes-vous sur la version 3.0.0-alpha.x du routeur?
0 votes
Je suis en train d'utiliser "@angular/router": "3.0.0-alpha.7"
0 votes
Hmmm .... J'ai essayé de comprendre le routeur et les meilleures pratiques aussi... Peut-être ne devriez-vous pas définir dynamiquement l'attribut base href et plutôt utiliser les routes enfants ?
0 votes
Je voudrais faire la même chose. Des idées supplémentaires ?
13 votes
Angular 7 - novembre 2018. c'est toujours un problème. les réponses actuelles fournissent une solution partielle. faire des choses à l'intérieur du module angular est trop tard. lorsque votre index HTML est servi, il doit savoir d'où tirer les scripts. il n'y a que 2 façons que je vois - utiliser asp\php\whatever pour servir index.html avec un contenu basehref dynamique. ou utiliser du javascript natif directement sur le fichier index.html pour modifier le contenu du DOM avant qu'il n'atteigne angular. les deux sont des solutions médiocres à un problème commun. triste.
1 votes
Quelqu'un pourrait-il répondre à ma question également. stackoverflow.com/questions/53757931/…
0 votes
Je suis tombé sur ce même problème et en particulier en utilisant
@angular/pwa
, mon approche a été de "virtualiser" la distribution de l'application ng du serveur, de détecter l'URL de base pour le client et de déterminer s'il nécessite une application angulaire, puis de remplacer leur contenu par le backend tout en répondantindex.html
oungsw.json
. C'est moche mais ça marche.0 votes
Angular 12 - septembre 2021, y a-t-il de nouvelles solutions avec la dernière version d'Angular ?