rails 3.2.1样式表没有加载?

时间:2012-03-05 13:56:24

标签: ruby-on-rails

我正在阅读“使用rails进行敏捷Web开发”一书并在第6章末尾遇到了一个问题。基本上,我到目前为止所做的是定义了一个sass样式表(products.css.scss)并将其链接起来到我在layouts / application.html.erb中的应用程序:

<!DOCTYPE html>
<html>
<head>
  <title>Depot</title>
  <%= stylesheet_link_tag    "application", :media => "all" %>
  <%= javascript_include_tag "application" %>
  <%= csrf_meta_tags %>
</head>
<body class='<%= controller.controller_name %>'>

<%= yield %>

</body>
</html>

但是当我运行服务器并访问页面时它没有加载!

任何想法为什么?

6 个答案:

答案 0 :(得分:4)

这解决了我的问题:

bundle exec rake assets:precompile

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

您是否已将products.css.scss添加到您在布局中引用的application.css清单文件中?

启用资产管道后,您必须在布局中包含清单并引用清单中的所有样式表。

希望它有所帮助。

答案 3 :(得分:0)

运行资产预编译命令将按照上面提到的用户编译...但是,这可能不是您想要做的事情,除非您希望每次进行更改时都必须运行它,然后将所有这些添加到您的SCM回购然后可能在生产中存在问题。

这个确切示例的真正解决方案是其中没有“products”类,因此不会拾取products.css.scss。请参阅此帖子,这有助于我理解这一点:https://stackoverflow.com/a/10080134

答案 4 :(得分:0)

depot.css/public/stylesheets/发送到app/assets/stylesheets/

答案 5 :(得分:0)

根据文档(http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/StylesheetTagHelpers/stylesheet_link_tag),您可以设置标记以在stylesheets目录中包含stylesheet_link_tag的所有样式表:all还有缓存,递归和连接的选项。

如果您不想包含除了application.css和控制器的css之外的所有内容,您可以这样做:

= stylesheet_link_tag'application',params [:controller] .classify.downcase.pluralize