1

我正在编写 Michael Hartl Rails 教程(目前是第 7 章)。当我尝试运行服务器时,会出现此消息:

Sass::SyntaxError in Static_pages#home

Showing C:/rails_project/sample_app/app/views/layouts/application.html.erb where line      #5 raised:

Invalid CSS after "}": expected "}", was ""
(in C:/rails_project/sample_app/app/assets/stylesheets/custom.css.scss)

Extracted source (around line #5):

2: <html>
3:   <head>
4:     <title><%= full_title(yield(:title)) %></title>
5:     <%= stylesheet_link_tag    "application", media: "all" %>
6:     <%= javascript_include_tag "application" %>
7:     <%= csrf_meta_tags %>
8:     <%= render 'layouts/shim' %>    

Rails.root: C:/rails_project/sample_app
Application Trace | Framework Trace | Full Trace

app/assets/stylesheets/custom.css.scss:104
app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb___917874405_26658636'

来自 application.html.erb 的代码:

<!DOCTYPE html>
<html>
  <head>
    <title><%= full_title(yield(:title)) %></title>
    <%= stylesheet_link_tag    "application", media: "all" %>
    <%= javascript_include_tag "application" %>
    <%= csrf_meta_tags %>
    <%= render 'layouts/shim' %>    
  </head>
  <body>
    <%= render 'layouts/header' %>
    <div class="container">
      <%= yield %>
      <%= render 'layouts/footer' %>
      <%= debug(params) if Rails.env.development? %>
    </div>
  </body>
</html>

我不知道问题出在哪里。错误消息似乎不足以显示 aplication.html.erb 中存在的代码。有人有线索吗?

4

3 回答 3

1

错误在您的样式表中:

应用程序/资产/样式表/custom.css.scss

您的应用程序正在使用 Sass (http://sass-lang.com),并且上面列出的文件中存在问题。修复 .scss 错误,错误消息将消失。不幸的是,它似乎没有在该 .scss 文件中为您提供错误的行号。

于 2012-09-13T04:10:21.000 回答
1

在完成本教程时,我收到了同样的错误消息。

我意识到我;在第一行代码的末尾省略了 acustom.css.scss

代替:

@import "bootstrap"

它必须是:

@import "bootstrap";
于 2013-09-08T03:21:57.590 回答
0

我猜你正在使用 saas 并且你正在使用 css“{}”。在我们不使用的 saas 中。您的 saas 将被解析并编译成 css。对于解析 saas 遵循不同的语法。这里我将演示一个saas的例子

.head
  width: 100%
  .in.out
    width: 50%

注意上面的语法。这意味着在具有类“head”的元素上应用宽度 100%,如果在“.head”中找到具有类“in”和“out”的元素,它应该具有50% 的宽度。另请注意,用于缩进的空格应该相同,并且在“property:”之后给出一个空格

错误的方法

width:100%

正确的方法

width: 100%
于 2012-09-13T04:49:23.443 回答