我有一个ruby + sinatra网站,其中大部分文件都是静态HTML,这意味着可以通过访问http://www.mydomain.com/features.html,http://www.mydomain.com/pricing.html等来访问它们...(我正在使用sinatra几个动态页面)
我想要做的是在没有文件扩展名的情况下提供这些静态HTML文件。因此,转到http://www.mydomain.com/features会显示我当前访问http://www.mydomain.com/features.html时的情况。
我尝试过删除我的.html文件扩展名,但是当尝试在浏览器中打开这些文件时,浏览器会下载该文件而不是在屏幕上呈现它。
是否可以在没有文件扩展名的情况下继续提供我的静态.html文件?谢谢!
答案 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
如果您为该路线上方的动态网页定义路线,则它们将首先匹配。