web-dev-qa-db-fra.com

Impossible de charger le script de module

Après avoir déployé un Angular sur Heroku, une page vierge est affichée lorsque l'URL est atteinte et la console affiche des erreurs de type MIME.

erreur est:

Impossible de charger le script de module: le serveur a répondu avec un type MIME non JavaScript de "TEXT/HTML". La vérification stricte du type MIME est appliquée pour les scripts de module par spécification HTML.

11
HUSEN SHAIKH

Vous devez rechercher à l'aide de l'en-tête de type X-Content-Type-Options avec la propriété 'Nosniff' sur votre serveur.

Essentiellement, MIME est en place pour permettre au navigateur de détecter automatiquement si le type de contenu envoyé est correct pour l'application. L'utilisation de l'en-tête et de la propriété ci-dessus indique essentiellement au serveur - "j'ai ceci". À son tour, il devrait arrêter les erreurs MIME.

Vous pouvez consulter les documents Mozilla sur les options de type X-Content ici:
[.____] https://developer.mozilla.org/en-us/docs/web/http/headers/x-Content-type-Options

0
iQuain

S'il vous plaît essayez ceci, ça a fonctionné pour moi

"server": {
      "builder": "@angular-devkit/build-angular:server",
      "options": {
        "outputPath": "dist/server",

Changer comme ci-dessous:

"outputPath": "dist/",
0

J'ai eu la même erreur. Le coupable était dans mon fichier Server.js Express.

app.use(express.static(__dirname + '/dist/<app-folder-name>'));

// PathLocationStrategy
app.get('/*', function(req, res) {
    res.sendFile(path.join(__dirname + '/dist/<app-folder-name>/index.html'));
})

Si vous n'incluez pas votre nom d'application-nom après le dossier DIST pour la méthode Express.Static, il entraînera l'erreur de type MIME car elle ne peut pas localiser vos paquets JavaScript.

0
Gilmourguru

cela fonctionne pour moi lorsque vous utilisez Angular8 avec Express:

app.use('/', express.static('classvideo'));

app.get('*', (req,res,next) => {
    const indexFile = path.resolve(__dirname + '/classvideo/index.html');
    res.sendFile(indexFile);
});
0
linewei

Dans mon cas, c'était le problème du côté serveur. La réécriture est parfaitement traitée. Ajouter le code ci-dessous dans .htaccess a parfaitement fonctionné.

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R,L]

    # Don't rewrite files or directories
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]

    # Rewrite everything else to index.html
    # to allow html5 state links
    RewriteRule ^ index.html [L]
</IfModule>
0
Saad Qureshi