我希望能够使用自定义文件路径来提供文件(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();