當我們從IIS運行我們的應用程序時,我們最終得到了下面的ContentRoot和WebRoot。我們如何設置ContentRootPath和WebRootPath?
ContentRoot: C:\MyApp\wwwroot
WebRoot: C:\MyApp\wwwroot\wwwroot
這裏是我們如何設置ContentRoot
和WebRoot
。
public class Startup
{
private readonly IHostingEnvironment _hostingEnv;
public Startup(IHostingEnvironment hostingEnv)
{
_hostingEnv = hostingEnv;
}
public void Configure(IApplicationBuilder app)
{
app.Run(context =>
{
// test output
context.Response.WriteAsync(_hostingEnv.ContentRootPath + "\r\n");
return context.Response.WriteAsync(_hostingEnv.WebRootPath + "\r\n");
});
}
public static void Main(string[] args)
{
var contentRoot = Directory.GetCurrentDirectory();
var webRoot = Path.Combine(contentRoot, "wwwroot");
var host = new WebHostBuilder()
.UseKestrel()
.UseIISPlatformHandlerUrl()
.UseContentRoot(contentRoot) // set content root
.UseWebRoot(webRoot) // set web root
.UseStartup<Startup>()
.Build();
host.Run();
}
}
從智能感知我看到...
- ContentRootPath包含應用程序內容文件。
- WebRootPath包含網頁提供的內容的文件。
我們如何使測試輸出看,而不是像這樣:
ContentRoot: C:\MyApp\
WebRoot: C:\MyApp\wwwroot\
你確定網頁。配置應該旁邊wwwroot,而不是在wwwroot或內部批准發佈?我仍在搜索正確的位置,因爲一旦在Azure Web應用程序中部署了靜態文件,或者.exe沒有執行,就不會提供靜態文件。 – Zygimantas