heroku 运行 rake 资产:预编译中止,因为文件具有无效的 UTF-8 字节序列

Posted

技术标签:

【中文标题】heroku 运行 rake 资产:预编译中止,因为文件具有无效的 UTF-8 字节序列【英文标题】:heroku run rake assets:precompile aborted because a file has a invalid UTF-8 byte sequence 【发布时间】:2012-12-02 01:20:14 【问题描述】:

这是我运行 git push heroku master 时得到的确切消息

** Execute assets:precompile:primary
rake aborted!
/app/app/assets/images/images/index_solid.js has a invalid UTF-8 byte sequence
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.2.2/lib/sprockets/utils.rb:19:in `block (2 levels) in read_unicode'
/app/vendor/bundle/ruby/1.9.1/gems/sprockets-2.2.2/lib/sprockets/utils.rb:13:in `tap'

我不小心把一个包含无效 utf-8 字节的 js 文件放到了 images 文件夹中。但是在我删除文件并删除 tmp/cache/assets 中的所有文件后,我仍然收到相同的错误消息。我都试过了

git push heroku master  
heroku run rake assets:precompile --trace 

但仍收到类似消息。谢谢

【问题讨论】:

你试过heroku run rake assets:clean吗? 是的,我有,但仍然收到相同的错误消息 【参考方案1】:

您可能仍需要从 Git 存储库中删除 .js 文件(这与将其作为文件删除不同)。

尝试从控制台运行这些命令集:

# Add files that might have been previously untracked
$ git add .

# Show the status
$ git status

# Remove deleted files from the git repository
# ... (if any deleted files show up in the 'unstaged changes' section)
$ for i in `git status | grep deleted | awk 'print $3'`; do git rm $i; done

# Commit the changes
$ git commit -am "Deleted files"

这将帮助您从 git 存储库中删除已删除的文件。

在推送到 Heroku 之前,还要确保您确实将这些更改提交到您的 master 分支或将您所做的分支合并到您的 master 分支中。

【讨论】:

以上是关于heroku 运行 rake 资产:预编译中止,因为文件具有无效的 UTF-8 字节序列的主要内容,如果未能解决你的问题,请参考以下文章

Rake 资产:Heroku 错误上的预编译

运行 rake 资产预编译后,在非函数中未定义

如何解决极其缓慢的 rake assets:在 heroku 上预编译?

Rails 4 - AwesomeEotPath 之后 Rake 中止,无效的 CSS

ExecJS :: ProgramError:运行rake资产时意外的标记点«(»,预期的点«:»:在生产中进行预编译

rails and metronic - 资产预编译:SassC 错误,空间不足