有時候項目用到前后端分離的思想,是以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