我正在从“使用 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 时,一切正常。现在,我将本书提供的样式表代码复制到脚手架生成的 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 时,没有应用样式表。我可以在检查元素中看到样式表,但它没有应用。我已经尝试了所有可以想象的东西。首先,我确保这行代码在我的 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
再一次,没有成功。最后,我尝试重新启动服务器以查看是否有效果。又失败了。我在这里处于死胡同。拜托,我将不胜感激有关此事的任何和所有意见,因为我对此事感到筋疲力尽和沮丧。