非法嵌套:内容不能与 %div 在同一行给出并嵌套在其中

Illegal nesting: content can't be both given on the same line as %div and nested within it

所以我正在使用 cloud 9 编辑器制作类似 Instagram 的页面。模板是 ruby on rails,但我也为此文件使用了 HAML。一旦我 运行 我的应用程序,我得到一个错误:非法嵌套:内容不能在与 %div 相同的行上给出并嵌套在其中。在此之前是一个错误,说缩进不正确。一个问题是我应该使用制表符还是空格?我的第二个问题是如何解决这个问题"Illegal nesting: content can't be both given on the same line as %div and nested within it"?错误在第 16 行:.collapse.navbar-collapse#bs-navbar-collapse-1 提前致谢!

下面是我的application.html.haml:

%html
 %head
  %title Photogram
  = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true
  = javascript_include_tag 'application', 'data-turbolinks-track' => true
  = csrf_meta_tags
 %body
  %nav.navbar.navbar-default
  .navbar-container
  .navbar-header
  %button.navbar-toggle.collapsed{"data-target" => "#bs-navbar-collapse-1", "data-toggle" => "collapse", type: "button"}
  %span.sr-only Toggle Navigation
  %span.icon-bar
  %span.icon-bar
  .navbar-brand= link_to "Photogram", root_path
      .collapse.navbar-collapse#bs-navbar-collapse-1
      %ul.nav.navbar-nav.navbar-right
      %li
        = link_to "New Post", new_post_path
      %li
        = link_to "Login", '#'
      %li
        = link_to "Register", '#'

    .container
    = yield

因为你有一个link_to,然后你在里面嵌套。检查 this answer here 并尝试更改您的代码。此外,如果您正在学习教程,请检查他们的代码并查看他们是否也出现错误。

解决方案 我所做的是缩进不正确。所以我回去检查每个缩进是否符合预期。现在代码如下所示:

%html
%head
  %title Photogram
  = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true
  = javascript_include_tag 'application', 'data-turbolinks-track' => true
  = csrf_meta_tags
%body
  %nav.navbar.navbar-default
    .navbar-container
      .navbar-header
        %button.navbar-toggle.collapsed{"data-target" => "#bs-navbar-collapse-1", "data-toggle" => "collapse", type: "button"}
          %span.sr-only Toggle Navigation
          %span.icon-bar
          %span.icon-bar
        .navbar-brand= link_to "Photogram", root_path
      .collapse.navbar-collapse#bs-navbar-collapse-1
        %ul.nav.navbar-nav.navbar-right
          %li
            = link_to "New Post", new_post_path
          %li
            = link_to "Login", '#'
          %li
            = link_to "Register", '#'

  .container
    = yield