Je charge le fichier java-script dans le modèle Django:
The script from âhttp://127.0.0.1:8000/static/myscript.jsâ was loaded even though its MIME type (âtext/plainâ) is not a valid JavaScript MIME type.
Il se charge correctement sur Chrome. Mais, sur Firefox, je reçois l'avertissement suivant:
<script type="application/javascript" src="{% static 'online-v3.js' %}"></script>
Je crains qu'en raison de ce problème, sur certains navigateurs, le fichier JS ne se charge pas du tout.
Quelle est la raison possible à cela et comment puis-je résoudre ce problème?
3 Réponses :
Supprimez le type
ou remplacez-le par "text / javascript"
.
Dans la spécification html5, le type
n'est pas requis à moins qu'il ne soit pas javascript
Votre serveur est mal configuré et sert des fichiers .js
avec un en-tête Content-Type
incorrect de text / plain
. p >
À l'avenir, Firefox pourrait commencer à bloquer les scripts avec des types MIME incorrects.
Pour ajouter à la réponse de evilpie, la cause principale pour moi était d'utiliser le py -m http.server
de base pour les tests locaux. Afin d'attribuer correctement aux fichiers .js
le type MIME 'text / javascript', j'utilise à la place ce script de l'utilisateur Github HaiyangXu.
# -*- coding: utf-8 -*- #test on python 3.4 ,python of lower version has different module organization. import http.server from http.server import HTTPServer, BaseHTTPRequestHandler import socketserver PORT = 8080 Handler = http.server.SimpleHTTPRequestHandler Handler.extensions_map={ '.manifest': 'text/cache-manifest', '.html': 'text/html', '.png': 'image/png', '.jpg': 'image/jpg', '.svg': 'image/svg+xml', '.css': 'text/css', '.js': 'application/x-javascript', '': 'application/octet-stream', # Default } httpd = socketserver.TCPServer(("", PORT), Handler) print("serving at port", PORT) httpd.serve_forever()
Source: https://gist.github.com/HaiyangXu/ec88cbdce3cdbac7b8d5