推送到Heroku被拒绝

时间:2015-10-27 09:16:12

标签: ruby-on-rails ruby git postgresql heroku

我创建了一个基于RoR构建的简单网站。我已经创建了一个Git存储库,并尝试部署到Heroku但它仍然失败:

    remote:        rake aborted!
    remote:        ExecJS::ProgramError: Unexpected character '#' (line: 10848, col: 0, pos: 303135)
    remote:        Error
    remote:        at new JS_Parse_Error (/tmp/execjs20151027-1005-1i4h7l5js:2359:10623)
    remote:        at js_error (/tmp/execjs20151027-1005-1i4h7l5js:2359:10842)

(为了简洁,在错误中取得了突破)

    remote:        Tasks: TOP => assets:precompile
    remote:        (See full trace by running task with --trace)
    remote:  !
    remote:  !     Precompiling assets failed.
    remote:  !
    remote:
    remote:  !     Push rejected, failed to compile Ruby app
    remote:
    remote: Verifying deploy....
    remote:
    remote: !   Push rejected to serene-depths-4806.
    remote:
    To https://git.heroku.com/serene-depths-4806.git
     ! [remote rejected] master -> master (pre-receive hook declined)
    error: failed to push some refs to 'https://git.heroku.com/serene-depths-4806.git'

是否说不应该有'#'?即使给出了这条线,我也不确定如何找到它。

另外,我已经从sqlite更改为postgresql并在gemfile和database.yml文件中进行了更改。然后,我删除了旧的Heroku远程分支,并按照这些说明尝试部署:https://devcenter.heroku.com/articles/git#deploying-code

感谢任何建议!

2 个答案:

答案 0 :(得分:1)

啊,当然在写完这篇文章之后,我找到了答案(对于那些将来可能会遇到同样问题的人):

这是因为'#'错误是在我从自动coffeescript文件转换的.js文件中。卫生署!我刚刚删除了文件顶部的评论并进行了部署。

答案 1 :(得分:0)

这可能是资产预编译失败的结果,并阻止了heroku部署过程。

您可以尝试在本地编译资产以检查错误

RAILS_ENV=production bundle exec rake assets:precompile --trace