rake资产:预编译不起作用(Rails 3.1.3版)

时间:2011-12-08 17:23:55

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

经过审核,此问题已被问及manymanymany次。然而,我仍然不清楚rake assets:precompile失败的原因。

我可以使用本地服务器(例如瘦身)从我的浏览器查看以下结果:

body{
@include background-image(image-url('my_image.png'));
background-repeat: repeat;
    ...
    ...
}

(注意:图像路径似乎根本不起作用,我使用的是thinkbot bourbon作为SCSS lib)

然而,每次运行预编译时,我都会得到以下内容(短跟踪):

rake aborted!
images/my_image.png isn't precompiled
(in /path/to/myapp/app/assets/stylesheets/application.css.scss)

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)

post建议我更改我的production.rb文件,我做了它并编译了我的图像,rake现在抱怨我有一个未定义的mixin 'border-radius'。也许这是下一个例外,但我不太确定。一切都在当地有效。

Rails指南(3.1.3)明确规定将值设置为 true

'uses more memory, performs poorer than the default and is not recommended'

所以现在我有两个问题。性能降级和我的SCSS库现在有未定义的mixins。

我想解决rake assets:precompile产生的生产部署问题。我的Gemfile资产组如下所示:

group :assets do
  gem 'sass-rails', "  ~> 3.1.0"
  gem 'coffee-rails', "~> 3.1.0"
  gem 'uglifier'
  gem 'zurb-foundation'
  gem 'bourbon' 
 end

2 个答案:

答案 0 :(得分:2)

如果您使用资产:预编译选项,则应在使用mixin的每个样式表中使用@import语句。

e.g。

假设您在样式表中使用的app/assets/stylesheets/partials/_mixins.css.scss中有自定义mixin,您应该添加

@import "partials/mixins";

到那个样式表。

我知道,不应该那样,但就目前而言,我还没有找到任何其他方式。

答案 1 :(得分:0)

图像路径助手假定路径的images部分,因此删除它(和斜杠),它应该开始工作。