Ruby on rails Rails 3.1:为什么Rails_admin导致“rake资产:预编译”失败? 编辑
这个问题应该是:为什么rails\u admin导致Ruby on rails Rails 3.1:为什么Rails_admin导致“rake资产:预编译”失败? 编辑,ruby-on-rails,Ruby On Rails,这个问题应该是:为什么rails\u admin导致rake资产:预编译失败? 我正在从Rails 3.0升级到3.1,并启用资产管道。在此过程中,rails\u admin破坏了我的资产预编译: -----> Preparing app for Rails asset pipeline Running: rake assets:precompile rake aborted! Undefined variable: "$red"
rake资产:预编译失败?
我正在从Rails 3.0升级到3.1,并启用资产管道。在此过程中,rails\u admin破坏了我的资产预编译:
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
rake aborted!
Undefined variable: "$red".
(in /tmp/build_zkm1tzzdhdh6/vendor/bundle/ruby/1.9.1/bundler/gems/rails_admin-a887eee6e916/app/assets/stylesheets/rails_admin/base/theming.css.scss)
Tasks: TOP => assets:precompile:primary
(See full trace by running task with --trace)
Precompiling assets failed, enabling runtime asset compilation
Injecting rails31_enable_runtime_asset_compilation
Please see this article for troubleshooting help:
http://devcenter.heroku.com/articles/rails31_heroku_cedar#troubleshooting
这是怎么回事<代码>$red已定义(在不同的rails\u admin.css文件中)。那么为什么
theming.css.scss
不能访问它呢?如何避免这种情况?看起来投诉不在base.css中-堆栈跟踪显示问题出在/app/assets/stylesheets/rails\u admin/base/theming.css.scss中。这就是调用变量$red的地方
预编译资源以气泡的形式单独查看所有CSS表,然后将它们缝合成一大块。这就是它失败的原因,$red
变量不会显示在单独的工作表中,即使它会显示在编译版本中
您可以通过以下两种方式之一解决此问题:用实际颜色代码替换theming.css.scss中的
$red
,或者将变量移动到文件中并导入该文件。例如,在我的应用程序中,我将所有颜色变量都放入“color_code.css.scss”中。然后,在需要引用它们的任何样式表中,添加行@import“color\u code”编码>到工作表顶部。哇!我发现了问题——这是一个关于Heroku的问题
不能包含rails_admin.css或.js文件。i、 e:
- 确保你没有任何一应俱全的*(css | js)在里面
config.assets.precompile
- 确保你没有任何通病
require_树。
在应用程序中。(css|js)
我的问题是我在做前者。这导致我的css文件被隔离加载,因此变量(如$red
)不能在它们之间正确共享。我在config/environments/production.rb文件中修复了这一问题:
我换了线
config.assets.precompile = ['*.js', '*.css']
对另一个
config.assets.precompile += %w(rails_admin/rails_admin.css rails_admin/rails_admin.js)
此解决方案适用于ruby 1.9.3和rails 3.1谢谢,Mark!几件事:1)没有文件“/app/assets/stylesheets/rails_admin/base/theming.css.scss”,所以我假设它是从“base.css”等动态创建的;2) 如果假设是正确的,那么“base.css”怎么/为什么会引用“$red”?另外,我通常喜欢rails的“颜色代码”样式,但我不想编辑/维护“rails\u admin”中的代码,这是在我安装“rails\u admin”gem时生成的。所以我现在还不打算使用这个解决方案。哎呀,我没有看到文件路径的前面-我没有意识到这是gem附带的代码。它不是从base.css动态编译的;它实际上是由gem本身在一个完全位于Rails应用程序之外的目录中引用的。一般来说,RailsAdmin gem在预编译资产时似乎遇到了一些问题。这里有一条很长的讨论线索可能会有所帮助:。再次感谢你,马克。那条讨论线索不是我的问题,但它非常相似。我能够找出我的问题,我已经发布了我自己对这个问题的答案。仅供参考:这个答案对发现问题的实质非常有帮助,但它已经脱离主题,因为我严格编辑了我的原始问题。这里也一样。虽然没有发布,但这是我使用的解决方案。@AnnaBillstrom您使用的rails版本是什么?@NikolayMoskvin对,在另一篇文章中,他们讨论了rails 2.0是问题所在-切换到1.9.3,它起了作用。