我正在从“使用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
再一次,没有成功。最后,我尝试重新启动服务器以查看是否有效果。失败了。我在这里死路一条。拜托,我将非常感谢关于此事的任何和所有意见,因为我对这件事感到非常沮丧和沮丧。
答案 0 :(得分:0)
不确定这是否有效但值得一试,尝试删除.css,只需保留products.scss。还可以获得一个非常简单的样式,看看它是否有效。或者甚至内联它看。
答案 1 :(得分:0)
我花了一个小时搞清楚答案,因为我自己也有同样的问题。转到你的application.css.sass并确保它有
/* ...
*= require_self
*= require_tree .
*/
在里面。这个自动加载应用程序/资产/样式表中的所有其他.css.sass,然后将它们预编译为公共/资产/样式表为1 statis css文件,并将其提供给您的浏览器。