Comment puis-je obtenir asp.net de base pour servir index.html fichier à partir de l'intérieur de mon wwwroot?
La raison pour laquelle je veux faire, c'est parce que j'ai un développement angulaire 4 application à l'aide de l'angle de la CLI et il prend soin de l'ensemble du processus de construction. J'ai mis à construire dans le répertoire wwwroot de mon asp.net projet de base, mais asp.net de base ne veut pas de la servir.
J'ai d'abord essayé de retourner le fichier html par l'intermédiaire d'un contrôleur. J'ai essayé cet itinéraire:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}");
});
Et puis, dans le contrôleur, je retourne le fichier html comme ceci:
public IActionResult Index()
{
var webRoot = _env.WebRootPath;
var path = System.IO.Path.Combine(webRoot, "index.html");
return File(path, "text/html");
}
Cela n'a pas fonctionné. Il a renvoyé une erreur 404 non trouvé exception et a donné le chemin, mais le chemin qu'il a donné le chemin d'accès correct à l'index.html fichier (je l'ai coupé et collé dans l'explorateur et le fichier ouvert).
Je suis également déclarer ces dans de démarrage:
app.UseStaticFiles();
app.UseDefaultFiles();
J'ai ensuite essayé de supprimer la route par défaut. Maintenant, je suis en mesure d'obtenir à la index.html fichiers, mais seulement si je tape le nom du fichier, c'est à dire:
localhost:58420/index.html
Si j'essaie d'accéder à la racine du domaine, sans l' "index.html" spécifiée j'ai une erreur 404.
Quelle est la méthode appropriée pour faire référence à la index.html comme la page par défaut? Je devine le faire à partir d'un contrôleur est probablement mieux, car alors il sera compatible avec angulaire de routage sans réécrit.