【问题标题】:Asset pipeline stylesheet not being included不包括资产管道样式表
【发布时间】:2014-05-29 03:43:56
【问题描述】:

为什么我在app/assets/stylesheets/ 中的样式表没有包含在rails 中? 这很奇怪,因为我在 app/assets/javascripts/ 中的 javasripts 被包含在内。

我认为这些目录中的所有资产都应该已经被注释掉了 CSS 清单文件application.css.scss 中的=require_tree . 行。

application.js.coffee` 中的//= require name_of_asset 行似乎工作正常。

application.css.scss

@import "resets";
@import "bootstrap";
/*
 *= require_self
 *= require_tree .
 */

文件目录树

我的实际完整application.css.scss

@import "resets";
@import "bootstrap";
/* blanket styles */
@import "custom/cp_variables";
@import "custom/cp_custom";
@import "custom/cp_responsive";
/* plugin styles */
@import "spritz";
/*
 *= require select2
 *= require select2-bootstrap
 *= require_self
 *= require_tree .
 */

我在加载“socionics.css.scss”文件及其所有同级文件时遇到问题。 嵌套在“自定义”子文件夹下的文件可以正常工作,因为我使用了@import

另外,有些 js 文件的 .coffee 后缀是有意的。

【问题讨论】:

  • 问题是您的其他CSS 文件没有被加载,还是application.css 只是没有加载?每个都有不同的原因
  • 我相信控制器特定的样式表都没有加载。 application.css.scss 肯定可以工作,因为包含的文件正在呈现样式 html。我可以从列表中删除和添加它们,它们会相应地改变。所以application.css.scss文件没问题
  • 而且它们都在/app/assets/stylesheets 文件夹中?
  • 我不知道!一个很好的测试方法是在你的 cmd 中触发这个命令:rake assets:precompile RAILS_ENV=production
  • 我总是追求正确的——这总是最难的!你能张贴你的/stylesheets文件夹的截图吗?

标签: ruby-on-rails ruby-on-rails-4 asset-pipeline


【解决方案1】:

您可能会受益于SCSS globbing

这是我们实际的 application.css.sass 文件之一(sassscss 使用相同的预处理器,因此两者都可以使用):

#app/assets/stylehseets/application.css.sass
@import variables
@import jquery/**/*

这应该开箱即用(我安装了sass-globbing gem,但结果我们不需要它!)

--

修复

对你来说,我会试试这个:

#app/assets/stylesheets/application.css.scss
@import "resets";
@import "bootstrap";

/* Blanket Styles */
@import "*" /* not sure if this will work for base dir */
@import "custom/*";

/* Plugins */
@import "spritz";
@import "select2";
@import "select2-bootstrap";

--

更新

在订购方面,我假设alphabetical,并且似乎确认了here

CSS 依赖于顺序,因此,在您的 用于导入依赖于样式表级联的样式的样式表 为风格的变化创造了机会,而不是 手动断言的顺序。建议您只使用通配符 顺序不重要的地方;例如。导入库文件。

【讨论】:

  • 订单如何控制?是按字母顺序的吗?
  • 不敢说实话!将不得不查找你想要的
  • 为您更新 - 您似乎是对的,它按字母顺序调用文件(其中加载顺序并不重要)
  • 如果这很重要,我建议特别包含重要文件(例​​如,我们使用variables.css.sass)。这将允许您通过通配符调用文件并保留顺序
  • ^ 你的意思是分离出你想要控制顺序的文件,明确列出它们,然后通过全局调用其他顺序无关的文件,对吧?
猜你喜欢
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 1970-01-01
  • 2013-02-26
  • 2011-12-04
相关资源
最近更新 更多