更改WebRootFileProvider是否是将自定义IFileProvider应用于asp-append-version的正确方法?有副作用吗?

问题描述 投票:0回答:1

我希望能够使用自定义文件路径来提供文件(js/v1/foo.js可以映射到wwwroot/js/foo.js处的实际文件)。我创建了VersionedFileProvider可以映射它。我将其设置为:

        app.UseStaticFiles(new StaticFileOptions()
        {
            FileProvider = new CompositeFileProvider(
                new VersionedFileProvider(env.WebRootPath),
                env.WebRootFileProvider),
        });

所有文件都在工作。但是,如果使用该自定义路径,则asp-append-version不起作用。当我检查source code时,他们正在使用WebRootFileProvider,而不是我在UseStaticFiles中设置的那个。

幸运的是,env.WebRootFileProvider是可设置的,所以我可以使用以下方法解决问题:

        env.WebRootFileProvider = new CompositeFileProvider(
            new VersionedFileProvider(env.WebRootPath),
            env.WebRootFileProvider);
        app.UseStaticFiles();

但是,我不得不承认我不知道WebRootFileProvider还在使用什么,并且可能会发生什么副作用。请帮助我确认这是解决我的问题的正确方法。

file asp.net-core static-files asp.net-core-staticfile
1个回答
0
投票

Confirm from development team the way I suggested in the question is recommended

    env.WebRootFileProvider = new CompositeFileProvider(
        new VersionedFileProvider(env.WebRootPath),
        env.WebRootFileProvider);
    app.UseStaticFiles();
© www.soinside.com 2019 - 2024. All rights reserved.