Angular9 發佈後找不到default page “index.html”
問題描述:
使用ASP.Net Core發佈Angular Web應用後,訪問後報錯:
The SPA default page middleware could not return the default page ‘index.html’ because it was not found, and no other middleware handled the request.
原因有以下幾個方面:
(1)生成文件路徑
在項目的startup.cs中配置的spa的staticfile的路徑是"ClientApp/dist"
但是在angular.json配置文件下,配置的outputPath是"dist/ClientApp"
導致發佈後路徑找不到
解決方案:
修改angular.json配置文件中的"outputPath"爲"dist",然後重新發布即可。
(2)文件權限
這個原因主要針對部署在Linux環境的程序,可以先給文件所在的文件賦權
sudo chmod -R 777 文件夾/文件名
重新運行項目即可
(3)啓動路徑
這個原因是在Linux系統中發現,若項目發佈的文件不是放在Linux主目錄下,在主目錄路徑下直接運行程序,也會報這個錯,當前的解決方法是:進入項目發佈文件的目錄,在該目錄下運行程序,例如,項目發佈文件存放於/usr/publish下,則
cd /usr/publish
dotnet xxx.dll
,則
cd /usr/publish
dotnet xxx.dll