ASP.NET Core - предотвращение обслуживания статического файла определенного типа - PullRequest
1 голос
/ 14 мая 2019

Я пытаюсь настроить ASP.NET Core для запрета обслуживания файлов .map в определенных ситуациях. Я пытался удалить его из известных типов файлов, но это, похоже, не мешает ему фактически обслуживать файл. Вот что у меня сейчас:

        app.UseSpa(spa =>
        {
            spa.Options.SourcePath = "Client";

            if (env.IsDevelopment())
            {
                var customPort = 60001;
                spa.UseProxyToSpaDevelopmentServer($"http://localhost:{customPort}");
                spa.UseReactDevelopmentServer("start");
            }
        });

        var contentTypeProvider = new FileExtensionContentTypeProvider();
        contentTypeProvider.Mappings.Remove(".map");
        app.UseSpaStaticFiles(new StaticFileOptions
        {
            ContentTypeProvider = contentTypeProvider
        });

С этой конфигурацией я все еще могу загружать .map файлы, когда просматриваю их. Что я могу сделать, чтобы предотвратить это?

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Проблема заключалась в том, что я использовал локальную настройку разработки, которая прокси через Node.В этом случае прокси обрабатывает статические файлы вместо ASP.NET Core.Мне пришлось включить его и использовать опубликованный код для тестирования.

0 голосов
/ 14 мая 2019

Попробуйте вместо этого использовать UseStaticFiles, перед app.UseSpa вызовом и даже перед вызовом app.UseMvc, если применимо.Я предполагаю .map для сопоставления CSS / SCSS.Это не совсем файл SPA, следовательно, он обслуживается.

var contentTypeProvider = new FileExtensionContentTypeProvider();
contentTypeProvider.Mappings.Remove(".map");

app.UseStaticFiles(new StaticFileOptions
{
    ContentTypeProvider = provider
});

app.UseMvc(); // if applicable

app.UseSpa(spa =>
{
    spa.Options.SourcePath = "Client";

    if (env.IsDevelopment())
    {
        var customPort = 60001;
        spa.UseProxyToSpaDevelopmentServer($"http://localhost:{customPort}");
        spa.UseReactDevelopmentServer("start");
    }
});

app.UseSpaStaticFiles();

Надеюсь, это поможет

...