我在Azure K8s集群中部署了一个ASP.net核心swagger API,当im使用curl locolhost:5100验证它到达主页时,我得到了错误404,而当我尝试curl -I locolhost:5100/index.html时,我得到了响应200。
知道我的启动类后,什么会导致这个问题?
  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            var healthCheckOptions = new HealthCheckOptions
            {
                ResponseWriter = WriteReadinessResponse
            };
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseRouting();
            app.UseAuthorization();
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
                endpoints.MapHealthChecks("/health/readiness", healthCheckOptions);
                endpoints.MapHealthChecks("/health/liveness", new HealthCheckOptions()
                {
                    Predicate = (_) => false
                });
            });
            // enable swagger support
            app.UseSwagger();
            app.UseSwaggerUI(c =>
           {
               c.RoutePrefix = string.Empty;//all request to route [/] are being forward to index.html somehow
               c.SwaggerEndpoint("/swagger/v1/swagger.json", "Demo API V1");
           });
        }有没有办法解决这个问题?当我卷曲-I localhost:5100时,我喜欢得到200的响应。
发布于 2021-02-09 03:46:14
DefaultFilesOptions如果url路由没有指定静态文件,则默认情况下它将重定向。
在您的configure方法中,尝试:
        var defaultFileOptions = new DefaultFilesOptions();
    defaultFileOptions.DefaultFileNames.Clear();
    defaultFileOptions.DefaultFileNames.Add("index.html");
    app.UseDefaultFiles(defaultFileOptions);https://stackoverflow.com/questions/66108067
复制相似问题