【问题标题】:Blazor - Static Html file routingBlazor - 静态 Html 文件路由
【发布时间】:2021-09-07 17:43:33
【问题描述】:

这里有一个静态 HTML 文件 (index.html),位于 wwwroot 内名为 Test 的文件夹中。

如何配置应用程序以使其可在/Test 地址访问? 目前看来我需要指定整个地址:“test/index.html”

【问题讨论】:

  • 你有app.UseStaticFiles();ConfigureStartup.cs 吗?
  • @LeiYang 是的,在那儿。
  • @Kasrak 在UseStaticFiles(); 之前,请添加UseDefaultFiles(); 并重试
  • @AmalK 不错的收获!如果你想回答,我会标记它。
  • @Kasrak 等一下,我会写一个答案

标签: c# blazor .net-5


【解决方案1】:

在路由到wwwroot 中的目录时自动查找以下文件:

  • default.htm
  • default.html
  • index.htm
  • index.html

就在Startup.csConfigure方法中的UseStaticFiles()之前,添加对UseDefaultFiles()的调用:

app.UseDefaultFiles();
app.UseStaticFiles();

如果您想要上述四个以外的文件名,您可以创建DefaultFilesOptions 的实例并添加您想要的文件名:

var options = new DefaultFilesOptions();
options.DefaultFileNames.Clear();
options.DefaultFileNames.Add("mycustomfilename.html");

app.UseDefaultFiles(options);
app.UseStaticFiles();

有关详细信息,请参阅serving default documents

另外,如果您想允许目录浏览,您可以将上述两个调用替换为:

app.UseFileServer(enableDirectoryBrowsing: true);

上面结合了UseDefaultFiles()UseStaticFiles()UseDirectoryBrowser()

【讨论】:

  • 感谢 Amal,已标记。没有必要,但如果文件没有默认名称,例如“Test.html”或“test1.html”或任何其他文件(要在定义的地址上加载),我们如何解决这个问题?有什么建议或好的文章吗?
  • @Kasrak 不客气 :)。请检查更新的答案。您可以创建DefaultFileOptions 的实例,并使用其Add() 方法配置更多文件名。
猜你喜欢
  • 2019-06-05
  • 1970-01-01
  • 2015-06-01
  • 1970-01-01
  • 2015-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多