我正在阅读“使用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>
但是当我运行服务器并访问页面时它没有加载!
任何想法为什么?
答案 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