Rails 3中的HAML仅生成doctype html

Uno*_*gan 7 html ruby xhtml haml ruby-on-rails

嘿伙计们我遇到了一个问题:

如果使用这样的东西:

!!! XML
!!!
%html
  %head
    %title Myspace
  %body
    %h1 I am the international space station
    %p Sign my guestbook
Run Code Online (Sandbox Code Playgroud)

我只把它作为来源:

<!DOCTYPE html>
<html>
  <head>
    <title>Myspace</title>
  </head>
  <body>

    <h1>I am the international space station</h1>
    <p>Sign my guestbook</p>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 :)

Joh*_*ley 8

根据HAML文档,除了使用HTML5的Rails 3之外,XHTML是默认的DOCTYPE.您可以设置:format覆盖选项.

config/environment.rb:

Haml::Template.options[:format] = :xhtml
Run Code Online (Sandbox Code Playgroud)


Eth*_*han 6

对我而言,将其付诸实践是行不通的environment.rb.

我设置了一个初始化器config/initializers/haml.rb并放入其中......

Haml::Template.options[:format] = :xhtml
Run Code Online (Sandbox Code Playgroud)

添加后请务必重新启动服务器.

然后在我的页面中......

!!! XML
!!!
Run Code Online (Sandbox Code Playgroud)

这产生......

<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)