0

当我在 Internet Explorer 中查看我的 Rails (3.1) 应用程序时,由于某种原因,它有时会在我的页面末尾显示一些 html 标记,但在 Chrome 或 Firefox 中却没有。特别是,它显示标签的一部分 - 不是完整的标签,而是部分 - 像</h</htm- 在视图中作为文本(在页面底部)。

在我的布局模板中,我确实有这个:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title><%= title %></title>

     <% if params[:controller] == 'pages' %>
       <%= stylesheet_link_tag "static_pages", "https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/redmond/jquery-ui.css" %>
     <%  elsif %>
       <%= stylesheet_link_tag "bootstrap", "https://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/redmond/jquery-ui.css" %>  
     <% end %>

     <%= javascript_include_tag "https://ws.sharethis.com/button/buttons.js", "admin.js" %>

     <%= csrf_meta_tag %>

     <script type="text/javascript" charset="utf-8"> 
        //jQuery.noConflict();
        jQuery.extend( jQuery.fn.dataTableExt.oStdClasses, {
                "sSortAsc": "header headerSortDown",
                "sSortDesc": "header headerSortUp",
                "sSortable": "header"
            } );

        jQuery(document).ready(function() {
            jQuery('#datatable').dataTable( {
                    "sDom": "<'row'<'span5'l><'span8'f>r>t<'row'<'span4'i><'span8'p>>",
                    "sPaginationType": "bootstrap"
                     } );
            } );
      </script>

      <%= yield :javascript%>
      <%= yield :script%>

   </head>
   <body>

   </body>
</html>

当我查看为视图生成的 html 源代码时,我注意到源代码以 Chrome/Firefox 结尾</body>而不是结尾</html>(或任何部分代码,如 IE)。

有人可以让我知道我做错了什么吗?谢谢你。

4

1 回答 1

1

除非包含强制子项(如您正在使用的 doctype 'Transitional' 的 DTD 中定义的那样,否则空的 Head 标记将不会被识别为格式正确(关闭)。)

给它一个标题

 <head>
  <title>A Title</title>
 </head>

我认为这对所有文档类型都是强制性的(但不要引用我的话)——但也无声点——每个网页都应该有一个标题。

更新:说标题存在,但听起来仍然像一个“格式良好”的问题..

1)运行,查看源代码并将所有代码复制到记事本/simular中并将其保存为test.html(这将突出显示任何不正确的字符,如(“)等..

2) 将您的 test.html 上传到 w3c 验证器服务w3c 验证器服务 这应该会提供一些很好的线索

希望破解它

于 2012-05-16T18:12:55.760 回答