有时候项目用到前后端分离的思想,是以WebApi作为后端提供数据接口然后结合前端页面展示数据,最终有可能会放到一个项目里打包和部署。在ASP.NET CORE WebAPI项目 设置HTML静态页面为首页如下
将项目用到的静态页面放到wwwroot
(服务器根)目录中
这里放的是我自己写的html页面
在Startup.cs
的Configure()方法里,添加:
//启用静态文件
app.UseStaticFiles();
//这一步很关键
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
//设置首页,我希望用户打开`localhost`访问到的是`wwwroot`下的Index.html文件
defaultFilesOptions.DefaultFileNames.Add("index.html");
app.UseDefaultFiles(defaultFilesOptions);
重要提示,代码最好按以下顺序执行
UseDefaultFiles->UseStaticFiles->UseMvc
修改过后,调试项目,发现首页还是定向到api/values
,而不是Index.html
解决办法:打开Properties\launchSettings.json
可以看到配置文件默认是把调试页面写死了
所以,将launchUrl
从api/values
改成空值
再次调试项目,能发现localhost定向到wwwroot的首页文件Index.html