代码之家  ›  专栏  ›  技术社区  ›  adamJLev

哈姆压痕问题

  •  4
  • adamJLev  · 技术社区  · 14 年前

    我对Rails和Haml很陌生……我不能让它正常工作。

    我有这个部分(head.html.haml):

    !!!
    %html
      %head
        %meta{'http-equiv' => 'Content-Type', :content => "text/html; charset=iso-8859-1"}
        = stylesheet_link_tag 'main'
      %body
    

    然后在我的application.html.haml中:

    = render :partial => 'shared/head'
    #wrapperDIV 
      = yield :layout
    

    但产出并不是我想要的:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
      <head>
        <meta content='text/html; charset=iso-8859-1' http-equiv='Content-Type' />
        <link href="/stylesheets/main.css?1266030236" media="screen" rel="stylesheet" type="text/css" />
      </head>
      <body></body>
    </html>
    <div id='wrapperDIV'></div>
    

    明显地 <html> <body> 应该包装wrapperDiv,但似乎没有将部分放在正确的层次结构中。

    2 回复  |  直到 10 年前
        1
  •  4
  •   wesgarrison    14 年前

    部分在结尾处是隐式关闭的。它们应该是完整的子对象。

    以下是您想要的:

    !!!
    %html
      %head
        %meta{'http-equiv' => 'Content-Type', :content => "text/html; charset=iso-8859-1"}
        = stylesheet_link_tag 'main'
      %body
        #wrapperDIV 
          = yield :layout
    

    如果你想 meta stylesheet 在部分调用中,您可以这样做,但在HAML文档末尾打开的所有标记都将关闭。

        2
  •  1
  •   Jonathan Julian    14 年前

    这个 html body 需要在 application.html.haml

    !!!
    %html
      = render :partial => 'shared/head'
      %body
        #wrapperDIV 
          = yield :layout