【问题标题】:Sass Not Precompiling on Rails 3.1 Asset Pipeline, Assets:precompile rake taskSass 未在 Rails 3.1 资产管道上预编译,资产:预编译 rake 任务
【发布时间】:2012-05-20 12:42:05
【问题描述】:

我有一个刚刚转换为 Rails 3.1 的应用程序。在我的 app/assets/stylesheets 中,我有一堆 sass 文件,它们使用 @import 来导入 parial sass 文件。其中一个文件称为 screen.sass,它是我想在其中一个布局中使用的主要 sass 文件。

但是,当我跑步时

RAILS_ENV=demo bundle exec rake assets:precompile

我知道屏幕没有预编译 (在 ../app/assets/stylesheets/screen.sass 中)

如果不将其添加到 demo.rb,它根本不会被编译,没有任何消息

config.assets.precompile += %w( screen.css )

我尝试了几件事,例如将 screen.sass 文件重命名为 screen.css.sass,并且我尝试在我的 app/assets/stylesheets 目录中创建一个名为 screen.css 的清单文件并需要 screen.sass 文件.在每种情况下,我都会得到与上面相同的预编译错误。

我没有使用生产环境进行预编译,因为演示是我想要测试 3.1 升级的暂存环境。

任何人对我可以尝试修复此错误还有什么想法吗?

【问题讨论】:

  • 我知道这已经很老了,但我实际上在 rails 4 上看到了同样的问题。许多(大多数)sass 文件都被正确预编译,但一个不是,奇怪的是它在开发中工作并得到即时编译,但被 assets:precompile 完全忽略
  • 看起来我需要将文件称为blah.css.sass 并且我需要config.assets.precompile += %w( blah.css ),即使配置注释说“......所有非JS / CSS都是已添加”

标签: ruby-on-rails ruby-on-rails-3.1 sass asset-pipeline assets


【解决方案1】:

rake assets precompile 需要知道将样式表编译成什么类型​​的文件。将 screen.sass 更改为 screen.css.sass

【讨论】:

  • 你的 demo.rb 中有 config.assets.compile = true 吗?
  • 我会尝试设置它并将 config.assets.compress 设置为 true。
  • 你的建议似乎有某种效果。它正在尝试编译,但是当它到达那个 sass 文件时它只是挂起。我不确定如何调试它。我取出了文件中的所有内容,但只有几行 CSS,但它仍然挂起。见过吗?
  • 不。正如Rails Guide says,“始终指定以 .js 或 .css 结尾的预期编译文件名,即使您想将 Sass 或 CoffeeScript 文件添加到预编译数组。”
猜你喜欢
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
  • 2012-10-01
  • 1970-01-01
  • 2012-03-14
  • 2011-12-20
  • 1970-01-01
相关资源
最近更新 更多