Asp Net Core如何提供html静态页面?

时间:2017-08-28 09:17:32

标签: asp.net asp.net-mvc razor asp.net-core asp.net-core-mvc

我最近开始使用.dpr个应用。后来我想将它与Angular集成,但首先我想要一个用Asp .Net Core“替换”cshtml的机制。

如果我将扩展程序从html更改为cshtml,我会收到此

  

'InvalidOperationException:未找到“索引”视图'。

我也尝试过Startup

html

但它也没有用。

可选是将cshtml布局内容与html页面集成,但我认为这是不可能的。

所以,我的问题是,我可以简单地用html替换所有cshtml吗?

1 个答案:

答案 0 :(得分:10)

静态文件通常位于Web根目录(wwwroot)文件夹中。默认情况下,这是我们可以直接从文件系统提供文件的唯一位置。

1.在(wwwroot)名称html

中创建index.html个文件

2.通过NuGet安装Microsoft.AspNet.StaticFiles

3.在配置方法

下的UseStaticFiles中添加Startup.cs
public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles(); // For the wwwroot folder

    // if you want to run outside wwwroot then use this
    //request like http://<app>/StaticFiles/index.html
   /* app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), @"MyStaticFiles")),
        RequestPath = new PathString("/StaticFiles")
    });*/
}

如果你想在wwwroot之外运行静态文件,那么 -

public void Configure(IApplicationBuilder app)
{
    app.UseStaticFiles(); // For the wwwroot folder

    //request like http://<app>/StaticFiles/index.html
    app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(), @"MyStaticFiles")),
        RequestPath = new PathString("/StaticFiles")
    });
}

您的请求,例如http://<app>/StaticFiles/index.html

如果您希望index.html成为您的默认文件,这是IIS一直拥有的功能,那么

public void Configure(IApplicationBuilder app)  { 
   app.UseIISPlatformHandler();  
   app.UseDeveloperExceptionPage(); 

   app.UseRuntimeInfoPage();  
   app.UseDefaultFiles(); 
   app.UseStaticFiles();

}

希望它对你有所帮助。您可以通过this链接获取更多信息。