Rails 3.2.5样式表未应用 - 新手

时间:2012-06-11 23:12:46

标签: ruby-on-rails ruby-on-rails-3

我正在从“使用Rails进行敏捷Web开发”(第4版,Rails 3)中学习Rails,我无法获得样式表。为了快速了解我到目前为止所做的工作,我首先制作了一个脚手架:

 rails generate scaffold Product title:string description:text image_url:string price:decimal

然后当然:

 rake db:migrate

然后我使用db / seeds.rb文件将一些数据加载到products表中。当我加载localhost:3000 /产品时,一切都很好。现在,我将书籍提供的样式表代码复制到了脚手架生成的products.css.scss文件中:

.products {
  table {
    border-collapse: collapse;
  }
  table tr td {
    padding: 5px;
    vertical-align: top;
  }
 .list_image {
    width:  60px;
    height: 70px;
  }
  .list_description {
    width: 60%;

    dl {
      margin: 0;
    }
    dt {
      color:        #244;
      font-weight:  bold;
      font-size:    larger;
    }
    dd {
      margin: 0;
    }
  }
  .list_actions {
     font-size:    x-small;
     text-align:   right;
     padding-left: 1em;
  }
  .list_line_even {
    background:   #e0f8f8;
  }
  .list_line_odd {
    background:   #f8b0f8;
  }
}

现在,当我加载localhost:3000 / products时,样式表没有被应用。我可以在inspect元素中看到样式表,但它没有应用。我已经尝试了一切可以想象的东西。首先,我确保这行代码在我的application.html.erb中:

  <%= stylesheet_link_tag "application", :media => "all" %>

鉴于我的新样式表(products.css.scss)位于assets / stylesheets /目录中,应该加载它。当我检查localhost:3000 / products上的元素时,我实际上在那里看到样式表,但它没有被应用。我试过的下一件事就是跑步:

rake assets:precompile

没有成功。删除public / assets目录后,我确保这行代码在config / application.rb文件中:

 config.assets.enabled = true

是的。接下来,我转到我的assets / stylesheet / application.css文件并尝试添加以下代码行:

*= require products

再一次,没有成功。最后,我尝试重新启动服务器以查看是否有效果。失败了。我在这里死路一条。拜托,我将非常感谢关于此事的任何和所有意见,因为我对这件事感到非常沮丧和沮丧。

2 个答案:

答案 0 :(得分:0)

不确定这是否有效但值得一试,尝试删除.css,只需保留products.scss。还可以获得一个非常简单的样式,看看它是否有效。或者甚至内联它看。

答案 1 :(得分:0)

我花了一个小时搞清楚答案,因为我自己也有同样的问题。转到你的application.css.sass并确保它有

/* ...
*= require_self
*= require_tree .
*/

在里面。这个自动加载应用程序/资产/样式表中的所有其他.css.sass,然后将它们预编译为公共/资产/样式表为1 statis css文件,并将其提供给您的浏览器。