J'utilise la version 5.2 angulaire dans le projet. Je suis en train de définir la référence de base dynamiquement dans le fichier index.html afin de satisfaire l’URL différente pour différents clients.
L'URL de la page principale de l'application ressemble à ceci: -
http://example.com/client1/app/login
http://example.com/client2/app/login
http://example.com/client3/app/login
client1, client2, etc. sont répertoires virtuels dans IIS.
Lorsque je lance l'application dans le navigateur, la fenêtre d'inspection permet de voir que les fragments dupliqués sont chargés et que la page de l'application ralentit.
Une chose que j'ai observée l'URL de demande Web des morceaux dupliqués. disons script.xxxxxxxxxxxxxxxxxxxxxxxx.bundles.css.
Première requête Web: - https://example.com/client1/scripts.7186135389ca4b63fab4.bundle.js
Deuxième requête Web (dupliquée): -https://example.com/scripts.7186135389ca4b63fab4.bundle.js
La deuxième demande Web n'est pas souhaitée. Et je ne suis pas capable de jauger comment cela se prépare.
Index.html ressemble à ceci dans mon projet: -
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Web</title>
<link href="/assets/Images/favicon.ico" rel="shortcut icon" type="image/x-icon">
<base id="baseHref" href="/">
<script>
(function () {
if (window.location.hostname !== 'localhost') document.getElementById('baseHref').href = "/" + window.location.pathname.split('/')[1] + "/";
})();
</script>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<app-root></app-root>
</body>
</html>
S'il vous plaît suggérer, comment résoudre ce problème.
Le problème réside lors des arguments de construction ng.
Auparavant, c’était ng build --prod -e = dev --base-href =/Client1
Après avoir ajouté la fin/à la déclaration de génération ng, cela a bien fonctionné.
ng construire --prod -e = dev --base-href =/Client1/
Les morceaux angulaires en double ont disparu.
Vous pouvez utiliser ng build --base-href /myUrl/
.
Ou ajoutez "baseHref" : "MY_APP_BASE_HREF_2"
dans votre angular.json
.
Article connexe avec plus d'informations: Angulaire 2/4/5 - Définit la base href de manière dynamique
Au lieu d'utiliser l'attribut HTML, utilisez le fournisseur APP_BASE_HREF . Vous pouvez utiliser une fabrique dynamique pour avoir une valeur qui change avec le temps.
Ajoutez ceci à la section head dans index.html
<base href="/">
<script>
(function() {
window['_app_base'] = '/' + window.location.pathname.split('/')[1];
})();
</script>
Dans le fichier app.module.ts, ajoutez ensuite {fourniture: APP_BASE_HREF, useValue: fenêtre ['_ _app_base'] || '/'} à la liste des fournisseurs, comme suit:
import { NgModule, enableProdMode, provide } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { APP_BASE_HREF, Location } from '@angular/common';
import { AppComponent, routing, appRoutingProviders, environment } from './';
if (environment.production) {
enableProdMode();
}
@NgModule({
declarations: [AppComponent],
imports: [
BrowserModule,
HttpModule,
routing],
bootstrap: [AppComponent],
providers: [
appRoutingProviders,
{ provide: APP_BASE_HREF, useValue: window['_app_base'] || '/' },
]
})
export class AppModule { }