我们有一个部分_form.html.slim
rails似乎没有区别为html
扩展添加你,因此我们可以删除html
扩展名。 _form.slim
将是相同的部分并且运作良好。
有什么不同吗?
答案 0 :(得分:4)
模板的方案是:<action_name>.<format>.<preprocessors>
。
添加格式扩展名是对该文件类型约束模板的一种方法,但它完全是可选的,就像预处理器一样。
例如,如果您要实施foos/index.erb
模板,则可以使用它来呈现http://host/foos
,http://host/foos.json
,http://host/foos.html
或您使用的任何mime类型。使用foos/index.html.erb
,您指定此模板应仅用于html。
格式化模板可用于格式约束取决于:
#respond_to
,强制允许格式现在有很多a bunch of default recognized mime types:html,text,js,css,ics,csv,png,jpg,gif,bmp,tiff,mpeg,xml,rss,atom,yaml,json, pdf,zip。
如果要同时指定强制格式的文件名和不带格式的文件名,则强制格式模板将优先于该给定格式(因此,如果您有foos/index.html
和foos/index
,第一个将用于呈现html页面,而第二个将用于任何其他格式。)
请注意,由于格式和预处理器都是可选的,因此如果需要,您可以只有一个foos/index
文件。这将为所有默认格式提供静态文件(未预处理)。
完全相同的规则适用于部分。如果指定格式,则partial将仅用于该格式。您可以指定具有每种格式的多个部分,并且可以省略格式以对所有格式使用相同的部分。
答案 1 :(得分:0)
是的,你可以这样做,但那部分也将呈现为js和css。所以如果可能的话尽量避免它
答案 2 :(得分:0)
我不确定在这种情况下,但html是内容类型,slim会是模板引擎。 filename.content_type.template_engine格式将其分离出来进行处理。它可能有助于您删除html扩展,但我认为最好的做法是保持扩展到位。