2016-06-14 171 views
0

我试图在Heroku上部署我的应用程序,但我不知道为什么会出现波纹管错误。Rails:生产资产:预编译错误

我有gem 'rails_12factor', group: :production所以我不使用config.serve_static_assets = trueconfig.assets.initialize_on_precompile如文档中解释说,他们不需要在Rails的4

当我分别执行以下两条命令:

bundle exec rake assets:precompile 

RAILS_ENV=production bundle exec rake assets:precompile 

我得到这个错误。

DEPRECATION WARNING: The configuration option `config.serve_static_assets` has been renamed to `config.serve_static_files` to clarify its role (it merely enables serving everything in the `public` folder and is unrelated to the asset pipeline). The `serve_static_assets` alias will be removed in Rails 5.0. Please migrate your configuration files accordingly. (called from block in tsort_each at /usr/local/lib/ruby/2.2.0/tsort.rb:226) 
I, [2016-06-14T13:21:21.336814 #10455] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/font-awesome.min-1c15db9e10c99a36820b80616445a837a002b3f3969047f3375fba65f8fef2ba.css 
I, [2016-06-14T13:21:21.337563 #10455] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/font-awesome.min-1c15db9e10c99a36820b80616445a837a002b3f3969047f3375fba65f8fef2ba.css.gz 
I, [2016-06-14T13:21:21.341449 #10455] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/bootstrap.min-139ad6ac9cbd7b8cd15fa3f80b9b69e3ead570cb9686b3bb42b73a19ed62dcef.css 
I, [2016-06-14T13:21:21.343432 #10455] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/bootstrap.min-139ad6ac9cbd7b8cd15fa3f80b9b69e3ead570cb9686b3bb42b73a19ed62dcef.css.gz 
I, [2016-06-14T13:21:21.400914 #10455] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/jquery.fancybox-9eb4dcf39f4ad63c3bff3f55e2a0e5e8a32578cc4553c94633ce0ccdc08c2bea.css 
I, [2016-06-14T13:21:21.401335 #10455] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/jquery.fancybox-9eb4dcf39f4ad63c3bff3f55e2a0e5e8a32578cc4553c94633ce0ccdc08c2bea.css.gz 
I, [2016-06-14T13:21:21.405283 #10455] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/animate-0af100ee0144b8c4dc6de8605097b0920d4ea4aad067cc34fbaa7ab525d4e6a8.css 
I, [2016-06-14T13:21:21.405707 #10455] INFO -- : Writing /home/rails/Desktop/hammasir/public/assets/animate-0af100ee0144b8c4dc6de8605097b0920d4ea4aad067cc34fbaa7ab525d4e6a8.css.gz 
rake aborted! 
Sass::SyntaxError: Invalid CSS after "}": expected selector or at-rule, was "}" 
(sass):86 
Tasks: TOP => assets:precompile 
(See full trace by running task with --trace) 

我调试和检查其中一个文件,但找不到像忘记使用任何错误),}或; 。另外,我清理了其中一个的全部内容,并用一个简单的CSS规则替换它,但仍然出现错误!

当我尝试push我的应用程序到Heroku时,也会发生此错误。请帮我理解是什么原因及其解决方法?

+1

该错误清楚地显示“语法错误:无效的CSS后”}“:预期的选择或at-rule,是”}“(sass):86” 检查您的CSS文件中的语法错误有多个服务,它为你[JigSaw](https://jigsaw.w3.org/css-validator/),[Css Lint](http://csslint.net/) –

+0

@ChiragArya使用JigSaw,它甚至会产生很多错误知名的css文件像bootstrap.css !!!这可能是因为不支持webkit之类的东西。 –

+0

这显然是一个css语法错误的问题,如果你删除你的css文件,然后尝试推送你的应用程序到heroku它将正常工作,除非在其他css文件中有另一个错误。你需要自己计算一下,因为不看你的css文件就不可能说出你的代码段有什么问题。 –

回答

0

这是我找到的答案,希望它对其他人也有用。

为了解决弃用警告,更新你的宝石如表示:

Asset pipeline DEPRECATION WARNING tsort.rb:226

约在主要错误,你应该找哪个文件是什么导致了错误。错误输出和提及的文件是误导性的,不一定包含语法错误。

您可以使用assets.rb文件来查找哪个文件(文件)包含语法错误。注释或删除所有在assets.rb所提到的文件,除一人外,在生产模式重做资产预编译命令:

RAILS_ENV=production bundle exec rake assets:precompile 

,并重复所有其他CSS文件来了解哪一个包含错误。这次这个命令的输出会很有帮助,并且正确地指出问题所在。然后,很容易找到错误并修复它。