J'ai une application Angular qui fonctionne parfaitement dans mon environnement de production et local. Après un changement minime, j'ai lancé l'application localement et tout fonctionnait bien. Ensuite, j'ai construit le projet et copié le dist dossier sur le serveur web. Le problème est que lorsque j'essaie d'accéder à l'application, l'erreur suivante s'affiche dans l'inspecteur de Chrome:
Uncaught SyntaxError: Unexpected token < inline.1a152b6….bundle.js:1
Uncaught SyntaxError: Unexpected token < polyfills.1553fdd….bundle.js:1
Uncaught SyntaxError: Unexpected token < vendor.94d0113….bundle.js:1
Uncaught SyntaxError: Unexpected token < main.d6f56a1….bundle.js:1
Donc, il semble que ce soit un personnage égaré, mais dans mon environnement local, l'application fonctionne correctement. Je ne reçois aucun message d'avertissement ou d'erreur sur la console.
Ceci est probablement le résultat d'une page 404 ou d'une redirection vers une page qui sert du code HTML normal au lieu des fichiers JavaScript attendus . (Une page HTML commence par <html>
ou un <!DOCTYPE...>
) Assurez-vous d'avoir correctement téléchargé les fichiers et d'accéder correctement à la page. Vous pouvez vérifier en accédant manuellement à l'URL avec le navigateur ou en consultant l'onglet Réseau des outils de développement de votre navigateur pour examiner la réponse.
J'ai eu le même problème:
Hier, j'ai remarqué que le fichier [hash] principal .js manquait sur le serveur et que Filezilla ne m'avait pas donné d'erreur en le copiant.J'ai alors essayé de copier uniquement ce fichier.Il ne fonctionnait pas. Lorsque j'ai supprimé la partie de hachage du nom de fichier, elle est copiée sans problème.
Solution de contournement
Exécuter: ng build --aot --prod --output-hashing none
Ce qui fonctionne à chaque fois.
Par conséquent, Filezilla ou Windows Server n'autorise pas les noms de fichiers d'une longueur spécifique ou n'aime pas certains hachages.
obtenu cette erreur aussi bien en utilisant angulaire avec express.
Je suppose que lorsque vous construisez un projet angulaire, le projet est stocké dans 'dist/the-app' et pas simplement 'dist', ce qui a résolu mon problème sur express.
// Point static path to dist
app.use(express.static(path.join(__dirname, 'dist/the-app')));
pour moi, cette erreur était due au fait de ne pas définir le chemin correct de l'application construite.
Je suis totalement nouveau dans Angular, donc cela peut ne pas aider ou du moins sembler évident à beaucoup d’entre vous, mais dans mon cas, cela se produisait chaque fois que je rechargeais une page qui ne soit pas la page racine, et cela venait du fait mon fichier index.html
, la balise de base ressemblait à ceci <base href="./">
, je devais supprimer le fichier. il ressemble donc à ceci: <base href="/">
.
Dans mon cas, le <!--...-->
était la cause de l'erreur
Cela dépend du serveur sur lequel vous utilisez . Par exemple, avec Apache, vous définissez le fichier .htaccess sur un chemin relatif sur votre lecteur, où votre application se trouve avec RewriteBase
. Définissez également le <base href="">
en conséquence. Avec node, la app.use(express.static(__dirname + '/dist'));
devrait aller avant le app.get
... Vérifiez également que la construction ne contenait aucune erreur et que tous les fichiers ont été copiés dans dist.
Pour une solution de contournement rapide cependant (QUI IS N'EST DEFINITIVEMENT PAS RECOMMANDE ET N'EST PAS UNE BONNE PRATIQUE) vous pouvez créer en mode non prod Essayez ng build
seulement.
Avec un peu de changement dans le fichier .htaccess
, j’ai réussi à résoudre ce problème.
J'ai remplacé certaines lignes de https://angular.io/guide/deployment#fallback par les lignes suivantes:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.html
D'après mon expérience, j'ajoute d'autres éléments à wwwroot qui est en conflit pour détecter l'adresse de base statique du noyau asp.net.
Par exemple:
wwwroot
|--> assets
|---> ckeditor
Est en conflit avec angular -> src -> assets
Et affiche cette erreur
Uncaught SyntaxError: Unexpected token < inline.1a152b6….bundle.js:1
...
J'ai eu le même problème, très irritant. J'ai essayé plusieurs des solutions trouvées ici, mais aucune n'a fonctionné.
L'ajout des éléments suivants dans le panneau Paramètres de l'application de l'application dans le portail Azure a été efficace:
Nom du paramètre d'application: WEBSITE_NODE_DEFAULT_VERSION Valeur: 6.9.1
> Avant et après - extraits du journal de déploiement.
remote: The package.json file does not specify node.js engine version constraints.
remote: The node.js application will run with the default node.js version 0.10.40.
remote: Selected npm version 1.4.28
remote: The package.json file does not specify node.js engine version constraints.
remote: The node.js application will run with the default node.js version 6.9.1.
remote: Selected npm version 3.10.8
J'ai un projet d'api web et angulaire, après avoir essayé différentes manières, après avoir résolu le problème de redirection pour moi
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//For angular url rewriting
app.Use(async (context, next) =>
{
await next();
if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value))
{
context.Request.Path = "/index.html";
await next();
}
})
.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new List<string> { "index.html" } })
.UseStaticFiles();
app.UseAuthentication();
app.UseMvc();
}
Le problème est avec la partie <base href="/">
du fichier index.html
, il semble que angular génère un fichier de construction à l'intérieur de dist/{yourProjectName}/
, mais les fichiers index.html
passent par le dist/
pour les fichiers de construction. Maintenant vous avez 2 options:
Changez la partie <base href="/">
du fichier index.html
en <base href="/dist/{yourProjectName}/">
, mais vous avez maintenant une incohérence entre la commande ng serve
et ng build
et vous ne pouvez pas voir votre projet avec ng serve
. Donc, vous avez à changer cette partie à chaque fois!
L'approche secondaire que je recommande est simplement de changer le chemin de sortie du projet! Accédez à votre fichier angular.json
de votre projet et remplacez le "outputPath": "dist/{yourProjcetName}",
par "outputPath": "dist/"
sans changer le base href
!
Il suffit d’ajouter après /
le nom du dossier de votre projet, comme indiqué précédemment Gerardo Tarragona .
Exemple:
/myProject
Cordialement
Dans mon cas, c'était le résultat d'une saisie incorrecte de caractères UTF-8.
La syntaxe était:
<component [inputField]="Artikelns Mått"></component>
Tout d'abord, le problème a été résolu en remplaçant le å
par a
. Mais ce n'est pas vraiment une solution.
Ce qui a résolu le problème, c’est d’ajouter ''
autour du texte.
<component [inputField]="'Artikelns Mått'"></component>
Erreur:
Error: Template parse errors:
Parser Error: Unexpected token 'å' at column 11 in [Artikelns mått] in CadComponent@25:28 ("
<div class="col-md-4">
<lte-box>
<lte-box-header [ERROR ->][headerTitle]="Artikelns mått"></lte-box-header>
<lte-box-body>
<table "): CadComponent@25:28
Parser Error: Lexer Error: Unexpected character [å] at column 12 in expression [Artikelns mått] at column 13 in [Artikelns mått] in CadComponent@25:28 ("
<div class="col-md-4">
<lte-box>
<lte-box-header [ERROR ->][headerTitle]="Artikelns mått"></lte-box-header>
<lte-box-body>
<table "): CadComponent@25:28
at SyntaxError.BaseError [as constructor] (webpack:///./@angular/compiler/src/facade/errors.js?:31:27) [<root>]
at new SyntaxError (webpack:///./@angular/compiler/src/util.js?:163:16) [<root>]
at TemplateParser.parse (webpack:///./@angular/compiler/src/template_parser/template_parser.js?:170:19) [<root>]
at JitCompiler._compileTemplate (webpack:///./@angular/compiler/src/jit/compiler.js?:381:68) [<root>]
at eval (webpack:///./@angular/compiler/src/jit/compiler.js?:264:62) [<root>]
at Set.forEach (<anonymous>) [<root>]
at JitCompiler._compileComponents (webpack:///./@angular/compiler/src/jit/compiler.js?:264:19) [<root>]
at createResult (webpack:///./@angular/compiler/src/jit/compiler.js?:146:19) [<root>]
at Zone.run (webpack:///./zone.js/dist/zone.js?:112:43) [<root> => <root>]
at eval (webpack:///./zone.js/dist/zone.js?:534:57) [<root>]
at Zone.runTask (webpack:///./zone.js/dist/zone.js?:150:47) [<root> => <root>]
at drainMicroTaskQueue (webpack:///./zone.js/dist/zone.js?:432:35) [<root>]