在Static_pages中的Sass :: SyntaxError #home Hartl的教程

时间:2012-09-13 04:05:42

标签: css ruby-on-rails ruby

我正在研究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中存在代码。有人知道吗?

3 个答案:

答案 0 :(得分:1)

错误发生在您的样式表中:

  

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

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

答案 1 :(得分:1)

在执行本教程时,我遇到了相同的错误消息。

我意识到我在;

的第一行代码末尾省略了custom.css.scss

而不是:

@import "bootstrap"

需要:

@import "bootstrap";

答案 2 :(得分: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%