4

私は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をラップする必要がありますが、パーシャルが正しい階層に配置されていないようです。

4

2 に答える 2

4

パーシャルは、最後に暗黙的に閉じられます。それらは完全なサブオブジェクトであると想定されています。

これがあなたが望むものです:

!!!
%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ドキュメントの最後に開いているすべてのタグが閉じられます。

于 2010-02-14T22:48:13.947 に答える
1

htmlとが含まれているbody必要がありますapplication.html.haml

!!!
%html
  = render :partial => 'shared/head'
  %body
    #wrapperDIV 
      = yield :layout
于 2010-02-14T04:04:08.153 に答える