Sinatra 手动请求HAML文件

Sinatra 手动请求HAML文件,sinatra,haml,Sinatra,Haml,如果我想在Sinatra中手动请求一个特定的HAML文件,它看起来是这样的: get '/' do haml_file = File.open('views/index.haml').read haml haml_file end 我的问题是,你有任何理由相信这比使用传统方法效率更低吗 get '/' do haml :index end 也许Sinatra读取文件的效率比我手动读取文件的效率更高 如果我的手动方法不好,请建议另一种方法手动获取位于特定路径中的HAML文件。(原因

如果我想在Sinatra中手动请求一个特定的HAML文件,它看起来是这样的:

get '/' do
  haml_file = File.open('views/index.haml').read
  haml haml_file
end
我的问题是,你有任何理由相信这比使用传统方法效率更低吗

get '/' do
  haml :index
end
也许Sinatra读取文件的效率比我手动读取文件的效率更高


如果我的手动方法不好,请建议另一种方法手动获取位于特定路径中的HAML文件。(原因是路径并不总是那么简单。)

你是说你没有将所有视图保存在同一个目录中?这是一种痛苦,但取决于你。如果它位于所需的
视图
目录的子目录,您可以使用(我是维护者)。否则,您所做的很好,很难看到它如何提高如此小的文本文件的效率。您可能需要添加的唯一内容是用于缓存的头


其他:

这是现在的标准,对吗

config.ru
app/
  main.rb
  public/
  helpers/
  models/
  views/
    mobile/
    stylesheets/
    whatever/
    _partial1.haml
    _partial2.haml
    layout.haml
specs/

你是说你没有把所有的视图都保存在同一个目录中?这是一种痛苦,但取决于你。如果它位于所需的
视图
目录的子目录,您可以使用(我是维护者)。否则,您所做的很好,很难看到它如何提高如此小的文本文件的效率。您可能需要添加的唯一内容是用于缓存的头


其他:

这是现在的标准,对吗

config.ru
app/
  main.rb
  public/
  helpers/
  models/
  views/
    mobile/
    stylesheets/
    whatever/
    _partial1.haml
    _partial2.haml
    layout.haml
specs/

我无法想象为什么人们希望所有的观点都在同一个目录中。对于更大的网站,这是如何维护的?网站中有不同的部分,很自然地希望在文件系统中以某种方式将它们分开?比如apple.com、apple.com/imac、apple.com/imac/specs等等。将根站点与imac站点分开可能很好?让我知道你的想法。我有点困惑..@user2015453您需要多少视图?网站的大小无关紧要,整个观点是重用它们。我认为sub-dir脱离了主
视图
dir,并且(如果您愿意的话)在partials中添加下划线就足够了。我在我的答案中添加了一个faily标准布局,大多数人都会做一些类似于Rails的事情,因为这是一个好主意(如果对我来说有点太像Java的话)。我无法想象为什么人们希望所有的视图都在同一个目录中。对于更大的网站,这是如何维护的?网站中有不同的部分,很自然地希望在文件系统中以某种方式将它们分开?比如apple.com、apple.com/imac、apple.com/imac/specs等等。将根站点与imac站点分开可能很好?让我知道你的想法。我有点困惑..@user2015453您需要多少视图?网站的大小无关紧要,整个观点是重用它们。我认为sub-dir脱离了主
视图
dir,并且(如果您愿意的话)在partials中添加下划线就足够了。我在回答中添加了一个faily标准布局,大多数人都会做一些类似于Rails的事情,因为这是一个好主意(如果有点太像Java的话)。您的问题是否只是试图指定不仅仅是简单单词的视图文件(例如,如果它们在子目录中)?如果是这样,您可以使用引号创建复杂的符号,例如
haml:“subdir/view\u file.haml”
@matt谢谢您的帮助!您的问题是否只是试图指定不仅仅是简单单词的视图文件(例如,如果它们位于子目录中)?如果是这样,您可以使用引号创建复杂的符号,例如
haml:“subdir/view\u file.haml”
@matt谢谢您的帮助!