更改 WebRootFileProvider 是否是将自定义 IFileProvider 应用于 asp-append-version 的正确方法?有什么副作用吗?
Is changing WebRootFileProvider a proper way to apply custom IFileProvider to asp-append-version? Any side-effect?
我希望能够提供具有自定义文件路径的文件(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
以及可能发生的副作用。请帮助我确认这是解决我问题的正确方法。
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();
我希望能够提供具有自定义文件路径的文件(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
以及可能发生的副作用。请帮助我确认这是解决我问题的正确方法。
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();