web-dev-qa-db-fra.com

Comment définir la page de démarrage dans l'API Web de base dotnet?

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é.

32
code_farmer

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}");
   });
33
Alex Zhang

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"
    }
  }
52
Floris

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

20
sebulbamalastare

Votre fichier index.html doit être dans le dossier wwwroot

wwwroot /index.html

https://docs.Microsoft.com/en-us/aspnet/core/fundamentals/static-files

9
pampi

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.

7
grabhints

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.

5
Zeni

Si Index.html est à la racine du projet, il sera envoyé par défaut.

0
alex kostin