没有提供ASP.Net Core静态文件

时间:2017-03-20 19:31:59

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

我将旧应用程序移植到网络核心框架,我必须从网络目录为我的SPA提供文件:

我在Startup.cs中有这段代码

    public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
    {
        app.UseDefaultFiles();
        app.UseStaticFiles(new StaticFileOptions
        {
            FileProvider = new PhysicalFileProvider(
        Path.Combine(Directory.GetCurrentDirectory(), @"web")),
            RequestPath = new PathString("/web")
        });

我的项目根目录下有一个web目录,里面有一个带Hello World的简单index.html文件。

enter image description here

如果我尝试访问此网址http://localhost:12345/webhttp://localhost:12345/web/index.html,则浏览器正在等待来自网络浏览器的回复。

enter image description here

问题在applicationhost.config中:

  <site name="MyProject" id="5">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="C:\Dev\MyProject\srccore\MyWeb" />
    </application>
    <application path="/web" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="C:\Dev\MyProject\src\MyOldSpa" />
    </application>
    <bindings>
                <binding protocol="http" bindingInformation="*:53053:localhost" />
    </bindings>
  </site>

我不得不删除旧的虚拟app目录:

    <application path="/web" applicationPool="Clr4IntegratedAppPool">
      <virtualDirectory path="/" physicalPath="C:\Dev\MyProject\src\MyOldSpa" />
    </application>

现在提供静态文件,但我仍有问题,我必须在网址中指定index.html

最后替换默认文件:

app.UseDefaultFiles();

app.UseDefaultFiles("/web");

让它有效!

0 个答案:

没有答案