是否可以在没有文件扩展名的情况下提供静态HTML?

时间:2014-06-05 21:52:05

标签: ruby sinatra

我有一个ruby + sinatra网站,其中大部分文件都是静态HTML,这意味着可以通过访问http://www.mydomain.com/features.htmlhttp://www.mydomain.com/pricing.html等来访问它们...(我正在使用sinatra几个动态页面)

我想要做的是在没有文件扩展名的情况下提供这些静态HTML文件。因此,转到http://www.mydomain.com/features会显示我当前访问http://www.mydomain.com/features.html时的情况。

我尝试过删除我的.html文件扩展名,但是当尝试在浏览器中打开这些文件时,浏览器会下载该文件而不是在屏幕上呈现它。

是否可以在没有文件扩展名的情况下继续提供我的静态.html文件?谢谢!

1 个答案:

答案 0 :(得分:1)

如果你这样做:

require 'sinatra'

get '/:file_name' do |fname| 
  send_file(
    File.join(settings.public_folder, "#{fname}.html")
  )
end

...然后是网址:

  

http://www.mydomain.com/features.html
  http://www.mydomain.com/features

将返回相同的页面。

  

settings.public_folder :默认情况下,假定这是一个目录   在根目录中命名为“public”... http://www.sinatrarb.com/configuration.html

如果您为该路线上方的动态网页定义路线,则它们将首先匹配。