2

让我们有一个部分 _form.html.slim

rails 是否添加扩展名似乎没有区别,html因此我们可以删除html扩展名。_form.slim将是相同的部分并且效果很好。

有什么区别吗?

4

3 回答 3

4

通用格式处理

模板的方案是:<action_name>.<format>.<preprocessors>

添加格式扩展名是在该文件类型上限制模板的一种手段,但它是完全可选的,就像预处理器一样。

例如,如果您要实现一个模板,foos/index.erb它可以用于渲染http://host/foos、或您使用的任何 mime 类型。使用,您指定此模板应仅用于 html。http://host/foos.jsonhttp://host/foos.htmlfoos/index.html.erb

模板可以用于没有格式约束的格式取决于:

  • 在您的控制器中使用或不使用#respond_to,强制允许的格式
  • 默认识别的格式

目前有很多默认识别的 mime 类型:html、text、js、css、ics、csv、png、jpg、gif、bmp、tiff、mpeg、xml、rss、atom、yaml、json、pdf , 压缩。

如果您要指定一个带有强制格式的文件名和一个没有强制格式的文件名,则强制格式模板将优先于该给定格式(因此,如果您有foos/index.htmland foos/index,第一个将用于呈现 html 页面,而第二个一个将用于任何其他格式)。

请注意,由于格式和预处理器都是可选的,因此如果需要,您可以只拥有一个foos/index文件。这将为所有默认格式提供静态文件(未预处理)。

带分音

完全相同的规则适用于部分。如果您指定格式,则部分将仅用于该格式。您可以指定多个具有各自格式的部分,并且您可以省略格式以对所有格式使用相同的部分。

于 2013-11-13T10:47:10.630 回答
0

在这种情况下我不确定,但 html 是内容类型,而 slim 将是模板引擎。filename.content_type.template_engine 格式将其分离出来进行处理。删除 html 扩展名可能对您有用,但我认为将扩展名保留在适当的位置是最佳做法。

于 2013-11-13T09:34:58.980 回答
0

是的,您可以这样做,但该部分也将呈现为 js 和 css。所以如果可能的话尽量避免它

于 2013-11-13T09:15:55.820 回答