我希望这不是一个重复的问题;我在SO上尝试了其他解决方案,但没有效果
将我的应用程序推送到Heroku时,推送失败,因为application.css无法编译。
我的终端输出:
Running: rake assets:precompile
rake aborted!
Sass::SyntaxError: Invalid CSS after " */": expected selector, was "@font-face"
(in /tmp/build_17e92975-ae8d-446f-8678-110eeeccfb64/app/assets/stylesheets/adminsite/application.css)
(sass):1845
尝试解决方案
我搜索并删除了../stylesheets/adminsite/目录中@ font-face之前的每个“* /”实例。同样的问题和结果。
我尝试过设置:
config.assets.compile = true
......同样的问题
修改
这是我的application.css(不是应用程序级别1,而是adminsite目录中失败的那个)
/*
* This is a manifest file that'll be compiled into application.css, which will include all the files
* listed below.
*
* Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
* or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path.
*
* You're free to add application-wide styles to this file and they'll appear at the top of the
* compiled file, but it's generally better to create a new file per style scope.
*
*= require jquery.ui.all
*= require_self
*= require normalize
*= require ./global/plugins/bootstrap/css/bootstrap
*= require ./global/plugins/uniform/css/uniform.default
*= require ./global/plugins/bootstrap-switch/css/bootstrap-switch
*= require ./global/css/components
*= require ./global/css/plugins
*= require ./global/plugins/simple-line-icons/simple-line-icons
*= require ./admin/layout/css/layout
*= require ./admin/layout/css/themes/light2
*= require ./admin/layout/css/custom
*/
通过删除和重新整理,我找到了
*= require ./global/plugins/font-awesome/scss/font-awesome
从该列表的底部开始是3,导致它失败。我现在可以在本地运行
rake assets:precompile --trace RAILS_ENV=production
但我无法使用
推送到herokugit push herokunb newbeta:master
解决:
这是字体很棒的CSS。删除它需要修复它。这个问题似乎没有解决,只是由于我自己的git错误。
答案 0 :(得分:11)
即使你找到了修复它的方法,我也会分享我的解决方案,因为我遇到了同样的问题而且调试起来有点困难。
您可能正在使用rails
3.2,sass-rails
3.2和font-awesome-sass
4.1。
事实证明,rails
3.2 使用sass-rails
3.2.6 ,这取决于sass
&gt; = < EM> 3.1 。但是,看起来sass
3.1与font-awesome
4.1 不兼容,所以我明确地将sass
gem设置为在我的 Gemfile上使用版本3.2 强>
gem 'sass-rails', '~> 3.2.6'
gem 'sass', '~> 3.2.0'
希望这有助于某人! ;)
答案 1 :(得分:0)
<强>解强>
破坏事物的文件是字体真棒CSS。从application.css&#34;中删除它需要&#34;行允许预编译工作。
执行此操作的方法是首先删除所有预编译需求字段,显示它将进行编译,然后慢慢添加需要字段以查看其中断的位置。
(感谢所有帮助解决这个问题的人。)
答案 2 :(得分:0)
对我来说,我忘记在班级登录前添加#。
应该是
#sign-in
(your code)
答案 3 :(得分:0)
我是rails的新手,在推送到heroku时遇到了类似的问题。一位朋友看了我的application.css文件,注意到我有
*= require bootstrap
和
*= require bootstrap-datetimepicker
低于*/
删除它们让我成功推动。
答案 4 :(得分:0)
我也遇到了类似的问题,偶然发现了这个问题。对我来说,我离开了我的一个CSS语句的结尾。添加它,我在几分钟内就恢复了。
答案 5 :(得分:0)
解决此问题的另一种方法是明确告诉资产管道使用资产的css版本而不是scss版本。例如,如果您在application.scss中导入.scss文件,请执行以下操作:
@import "angular-material"; # this will use scss version of the asset
您也可以告诉它使用css版本,如下所示:
@import "angular-material.css"; # this will use the css version
大多数供应商都提供scss和css版本,因此依赖css版本的资产非常有用,尤其是在使用供应商资产时。记住一切都将是预编译并最终变得丑化,所以你使用scss或css它们都会变得相同。