Je veux pouvoir demander des .html
fichiers statiques qui se trouvent dans le ~/Views
dossier. Selon la documentation, le système de routage vérifie si une URL correspond à un fichier disque avant d'évaluer les routes de l'application.
Mais lorsque je demande le fichier, une 404
erreur survient.
Mon fichier se trouve dans le dossier ~ / Views. L'URL est:http://[localhost]/Views/HtmlPage1.html
Qu'est-ce que j'ai manqué?
la source
Pour autoriser les fichiers comme js et html dans le dossier Views, modifiez le fichier web.config dans views-Folder:
la source
Bien, vous pouvez. La réponse marquée n'est pas entièrement correcte, même si elle donne une solution.
Le raisonnement dans la réponse marquée est correct, c'est web.config (paramètre BlockViewHandler pour être spécifique) dans le dossier Views qui empêche l'accès direct aux fichiers. Il est là pour sécuriser les vues dans Asp.Net MVC. Mais si vous avez posé une question sur la diffusion directe de ces fichiers, vous avez probablement une raison valable de le faire, comme l'utilisation de vues partielles AngularJS (comme dans notre cas) où nous ne voulons pas dupliquer le dossier de vues avec des noms étranges.
Voici donc un ajustement très simple que vous pouvez faire dans le fichier web.config qui se trouve dans le dossier Views, sans compromettre la sécurité de vos vues asp.net mvc. Cela sécurisera les fichiers .cshtml comme d'habitude, mais laissera vos fichiers .html seuls.
Change ça
--à--
la source
Une autre option consiste à insérer une méthode d'action dans l'un des contrôleurs souhaités pour servir le fichier html
Accédez au html en tant que http: // yoursite / controller / MyHtml . Vous pouvez étendre cette méthode d'action pour accepter le nom du fichier html en tant que paramètre method / querystrign et rendre le fichier au moment de l'exécution, par exemple quelque chose comme ça.
la source
Si vous envisagez d'utiliser le dossier de vue interne, les réponses ci-dessus devraient être les meilleures, mais cette réponse peut être utile pour les utilisateurs qui migrent vers asp.net mvc core. Placer les fichiers dans wwwroot au lieu du dossier views devrait faciliter l'accès à vos pages html en tant que localhost / myfile.html
la source