所以我使用cloud 9编辑器制作一个类似Instagram的页面。模板在rails上是ruby,但我也在使用HAML这个文件。一旦我运行我的应用程序,我就会收到错误:非法嵌套:内容不能同时在%div上给出并嵌套在其中。在此之前是一个错误说缩进是不正确的。一个问题是我应该使用制表符还是空格?我的第二个问题是如何解决这个问题“非法嵌套:内容不能与%div在同一行上给出并嵌套在其中”?错误在第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