程序在發布后 用dotnet xxx.dll的方式運行,所有的靜態資源都訪問不了,比如網頁中引用的圖片,css,js都訪問不了。這些資源在發布后文件夾下的wwwroot下面是存在的,可是訪問不了。
你的運行方式會導致進程的工作目錄指向 cmd 提示的目錄,如果不是在與 wwwroot 相同的目錄下調用 cmd 會導致無法找到文件,因為 asp.net core 的默認內容根目錄是進程工作目錄。如果希望 cmd 不會影響網站工作狀態,可以在 Main 方法開始處調用 System.IO 中的相關 API 設置進程工作目錄為主 dll 目錄再創建主機(wwwroot 文件夾默認和主 dll 在相同文件夾,主 dll 目錄可以反射獲取)。注意在調試模式下不要修改,不然會導致調試模式下靜態資源404。可以使用條件編譯確保只在發行模式執行工作目錄調整的相關代碼。