J'utilise MVC6 (asp.net 5) avec angular et j'essaie de charger des scripts à partir d'emplacements CDN lorsque mon code s'exécute en mode de publication, mais pour une raison quelconque, les scripts ne se chargent jamais.
J'ai lu que vous devez ajouter une balise META à votre fichier HTML, ce que j'ai fait, comme ça.
<meta http-equiv="Content-Security-Policy" content="default-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com; style-src 'self' https://ajax.aspnetcdn.com; font-src 'self' http://netdna.bootstrapcdn.com" />
Et sur mon Index.cshtml, j'ai ceci.
<environment names="Staging,Production">
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular.min.js"
asp-fallback-src="~/lib/angular/angular.min.js"
asp-fallback-test="window.angular">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.min.js"
asp-fallback-src="~/lib/angular-ui-router/release/angular-ui-router.js"
asp-fallback-test="window.angular && window.angularUiRouter">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-local-storage/0.2.2/angular-local-storage.min.js"
asp-fallback-src="~/lib/angular-local-storage/dist/angular-local-storage.js"
asp-fallback-test="window.angular && window.localStorage">
</script>
Mais ils ne chargent jamais. J'ai essayé d'exécuter le code avec IISExpress et également avec la commande DNX Web
.
J'ai this post, c’est ainsi que j’ai créé la balise META, mais je ne sais pas pourquoi cela ne fonctionne pas. J'ai essayé ceci dans Chrome, et sous la console, je reçois juste des erreurs comme
Placez les éléments suivants dans la section en-tête de la page Web:
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://cdnjs.cloudflare.com ">
Plus de détails sur la politique de sécurité du contenu peuvent être lus ici et ici .
Si vous souhaitez résoudre le problème, ajoutez ce qui suit dans votre fichier application.conf
.
play.filters.disabled += "play.filters.headers.SecurityHeadersFilter"
Dans mon cas, cette stratégie est définie via SecurityHeadersAttribute
(cet attribut est défini dans AccountController et quelques autres).
Fondamentalement, cela ajoute une stratégie par défaut dans la variable headers
qui remplace votre balise meta
. Vous devez donc modifier cette stratégie ou supprimer l'attribut de Controller.