J'essaie de construire une application Web avec l'API Web de base dotnet, mais je ne sais pas comment définir index.html comme page de démarrage, ce qui peut être fait facilement avec l'API Web de framework Dotnet. Et j'ai essayé d'utiliser app.UseDefaultFiles();app.UseStaticFiles();
pour résoudre ce problème, cependant, cela n'a pas fonctionné.
Si vous utilisez un fichier statique comme page par défaut, le code suivant peut vous aider.
app.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new
List<string> { "index.html" } });
Si vous utilisez la vue MVC, ajoutez simplement le rôle de routage.
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}");
});
Dans le fichier launchSettings.json, vous pouvez définir le fichier launchUrl.
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "<your relative URL here>",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
En utilisant
app.UseDefaultFiles();
app.UseStaticFiles();
est la bonne façon. Mais utilisez toujours UseDefaultFiles()
avant UseStaticFiles
Sinon, cela ne fonctionnera pas.
Pour référence: Principes de base des fichiers statiques
Votre fichier index.html doit être dans le dossier wwwroot
wwwroot /index.html
https://docs.Microsoft.com/en-us/aspnet/core/fundamentals/static-files
Pour Asp.Net Core 2.1, faites un clic droit sur le projet -> Propriétés -> Déboguer et à côté de la case à cocher Lancer le navigateur, définissez le chemin d'accès à la page de démarrage souhaitée.
Vous pouvez définir n'importe quel fichier de n'importe quel dossier de la racine wwwroot en tant que fichier par défaut à l'aide de options.DefaultFileNames.Add dans startup.cs.
Par exemple, pour utiliser myfile.html dans wwwroot/folder1/folder2/myfile.html, vous allez ajouter ceci dans Startup.cs.
options.DefaultFileNames.Clear ();
options.DefaultFileNames.Add ("folder1/folder2/myfile.html");
app.UseDefaultFiles (options);
app.UseStaticFiles ();
Mais certaines fois, cela ne fonctionnera peut-être pas. Par exemple, j'ai créé un projet dans le menu Fichier> Nouveau> Projet, puis j'ai sélectionné .NET Core> Application Web ASP.NET Core et Web Api sélectionné comme modèle de projet. F5 ouvre toujours la page api/values, même si j’ai ajouté index.html dans le dossier wwwroot et ajouté ensuite dans startup.cs
DefaultFilesOptions options = new DefaultFilesOptions();
options.DefaultFileNames.Clear();
options.DefaultFileNames.Add("mypage.html");
app.UseDefaultFiles(options);
app.UseStaticFiles();
Puis j'ai ouvert les propriétés du projet page et supprimé la valeur dans Debug/Lancer la boîte de navigateur (qui a été défini sur api/values) Le paramétrage de la page de démarrage fonctionne et mypage.html est la page de démarrage. Notez que cette page doit se trouver dans le dossier wwwroot car vous avez choisi d’utiliser des fichiers statiques.
Si Index.html est à la racine du projet, il sera envoyé par défaut.