我将旧应用程序移植到网络核心框架,我必须从网络目录为我的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文件。
如果我尝试访问此网址http://localhost:12345/web或http://localhost:12345/web/index.html,则浏览器正在等待来自网络浏览器的回复。
问题在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");
让它有效!