Je veux construire mon projet angulaire et générer un fichier ZIP le contenant pour l'envoyer par e-mail et je veux que la personne qui le reçoit puisse l'ouvrir sur son bureau en cliquant sur le fichier index.html.
J'ai changé la baseUrl en ./ ou en document.location mais j'obtiens l'erreur suivante: "Erreur de navigation non gérée"
Quelqu'un a-t-il une idée de la façon de résoudre ce problème?
4 Réponses :
Vous pouvez exécuter l'application angulaire en double-cliquant sur le fichier index.html. Ajoutez simplement le code ci-dessous dans votre app.module.ts
notez que: supprimez baseUrl = ./
du fichier index.html
//in App.module.ts : //import these packages import { APP_BASE_HREF, LocationStrategy, HashLocationStrategy } from '@angular/common'; // add these packages into providers as below : @NgModule({ imports: [ ..... ], declarations: [ .... ], providers: [ .... { provide: APP_BASE_HREF, useValue: '/' }, { provide: LocationStrategy, useClass: HashLocationStrategy }, .... ] .... }) export class Appmodule{}
Maintenant, exécutez: npm run build
et double-cliquez sur le fichier index.html
du dossier dist
.
Votre application doit s'exécuter.
@ user10899511 peut produire un exemple de stackblitz, qu'avez-vous essayé jusqu'à présent
Il me manquait pour supprimer l'élément
@ user10899511 heureux que cela ait fonctionné! ... veuillez accepter la réponse :)
mate, une chance d'utiliser le routeur dans ce mode index.html
?
Merci, cela a fonctionné avec de petits changements pour Angular 8 que j'ai postés en réponse.
Voici ce que j'ai fait pour Angular 8.
Après avoir suivi les étapes fournies par @programoholic, allez dans ./dist/index.html et supprimez l'attribut type = "module" de toutes les balises de script. p>
Voici mon fichier index.html de travail
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>StartApp</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/x-icon" href="favicon.ico"> </head> <body> <app-root></app-root> <script src="runtime-es2015.js"></script> <script src="runtime-es5.js" nomodule defer></script> <script src="polyfills-es5.js" nomodule defer></script> <script src="polyfills-es2015.js"></script> <script src="styles-es2015.js"></script> <script src="styles-es5.js" nomodule defer></script> <script src="vendor-es2015.js"></script> <script src="vendor-es5.js" nomodule defer></script> <script src="main-es2015.js"></script> <script src="main-es5.js" nomodule defer></script> </body> </html>
J'espère que cela aide
En plus de la réponse de @ programoholic. Si vous ne souhaitez pas supprimer l'élément
manuellement de index.html
, vous pouvez créer en utilisant ceci:
ng build --base-href= --prod
Dans Angular 9 (pas sûr des versions entre Angular 2-9, devrait fonctionner de la même manière), vous n'avez pas besoin de changer la Au lieu de cela, vous devez simplement spécifier l ' Exécutez un Ensuite, comme @ zaki-mohammed l'a dit, supprimez le
doit être remplacé par, Le fichier index.html doit maintenant s'afficher dans un navigateur. Suivez également, https://stackoverflow.com/a/61220058/4294275 LocationStrategy
pour afficher le index.html strong> du répertoire dist /
. url de base
comme ./
pour la rendre accessible en tant que un chemin de fichier.
ng build --prod --base-href ./
dans le répertoire de route de l'application et générez les fichiers dist /
type = "module"
du script
s. J'ai également supprimé le nomodule defer
<script src="runtime-es2015.1eba213af0b233498d9d.js"></script>
<script src="runtime-es5.1eba213af0b233498d9d.js"></script>
<script src="runtime-es2015.1eba213af0b233498d9d.js" type="module"></script>
<script src="runtime-es5.1eba213af0b233498d9d.js" nomodule defer></script>
Est-ce que cela répond à votre question? Exécutez Angular2 en tant qu'application statique dans un navigateur sans serveur a>