如何使 ADSF/Puma 提供没有 .html 扩展名的 HTML 文件

How to make ADSF/Puma serve HTML files without the .html extension

我在没有 Jekyll 或任何其他已知静态站点构建器帮助的情况下构建静态站点。将此类站点部署到 GitHub Pages 或 Netlify 等静态站点主机时,这些服务器知道在我访问 mydomain.com/software(没有 .html 扩展名)时加载 software.html

当 运行 基于 Ruby 的本地 Web 服务器(例如 Puma)时,我有没有办法重现此行为?更具体地说,我正在使用 Ruby 的 adsf 包装器来启动 Puma 服务器以在本地为我的站点提供服务以进行开发。

我猜这应该可以通过一些机架中间件或机架配置来实现,我只是无法识别正确的 Google 搜索它。

我应该提一下,我对 directory/index.html 方法不感兴趣,因为在这些情况下,我见过的所有 Web 服务器都会在 URL 后添加斜杠。

https://github.com/tommysundstrom/middleman-rack-optional-html 可能会有帮助。

其实代码很简单。添加“.html”扩展路径不以"html".

结尾

https://github.com/tommysundstrom/middleman-rack-optional-html/blob/df1e50beca7599f3e47c5b83887573434f3253e3/lib/rack/middleman/optional_html.rb#L50