2011-01-25 80 views
7

嗨,我遇到了一个问题:HAML在Rails 3中只产生DOCTYPE HTML

如果使用这样的事情:

!!! XML 
!!! 
%html 
    %head 
    %title Myspace 
    %body 
    %h1 I am the international space station 
    %p Sign my guestbook 

我只得到这个源:

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

    <h1>I am the international space station</h1> 
    <p>Sign my guestbook</p> 
    </body> 
</html> 

感谢您的任何帮助:)

+0

无解到目前为止:( – Unomagan 2011-01-26 07:02:52

回答

8

根据HAML documentation,XHTML是默认的DOCTYPE除了Rails 3它使用HTML5。您可以设置:format选项进行覆盖。

config/environment.rb

Haml::Template.options[:format] = :xhtml 
+0

这有助于(有点),但现在我得到双倍的DOCTYPE声明。 .. – Unomagan 2011-01-26 11:57:11

6

对我来说,这是行不通的把它放在environment.rb

我成立了一个config/initializers/haml.rb初始化,并把它...

Haml::Template.options[:format] = :xhtml 

确保补充说,之后重新启动服务器。

在我的网页

则...

!!! XML 
!!! 

这将产生...

<?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">