Blazor Server хранит ресурсы c во внешней библиотеке (используя EmbeddedFileProvider) за пределами wwwroot - PullRequest
0 голосов
/ 17 февраля 2020

Я знаю, как добраться до ресурсов c во внешней библиотеке, используя:

_contents/RazorClassLibrary/data/static_files

, но это не то, что я хочу.

Я хочу что-то внешнее, вне "wwwroot" и с таким путем:

/data/static_files

Итак, я попытался:

var assembly = AppDomain.CurrentDomain.GetAssemblies().First(a => a.GetName().Name == "MyRazorClassLibrary");

app.UseStaticFiles(new StaticFileOptions
{
    FileProvider = new EmbeddedFileProvider(assembly, assembly.GetName().Name),
    RequestPath = new PathString("/data")
});

var subpath = "";
var embeddedContents = embeddedProvider.GetDirectoryContents(subpath);

// This works (I have many files under "MyRazorClassLibrary/data").
if (embeddedContents.Exists)
{
    // But the count = 0.
    var count = embeddedContents.Count();

    // Hence, nothing will happen here either.
    foreach (IFileInfo info in embeddedContents)
    {
        var filePath = info.PhysicalPath;
    }
}
else
{
    // No resources were found that match subpath (It never hits this line.)
}

Да, я могу получить это работает с использованием PhysicalFileProvider в локальном пути, но я хочу аналогичные функциональные возможности в RazorClassLibrary или StandardClassLibrary.

Следовательно, что мне не хватает или где я иду не так?

...