经过审核,此问题已被问及many,many,many次。然而,我仍然不清楚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
答案 0 :(得分:2)
如果您使用资产:预编译选项,则应在使用mixin的每个样式表中使用@import
语句。
e.g。
假设您在样式表中使用的app/assets/stylesheets/partials/_mixins.css.scss
中有自定义mixin,您应该添加
@import "partials/mixins";
到那个样式表。
我知道,不应该那样,但就目前而言,我还没有找到任何其他方式。
答案 1 :(得分:0)
图像路径助手假定路径的images
部分,因此删除它(和斜杠),它应该开始工作。