Rails 预编译错误(无效的 UTF-8 字节序列)
Posted
技术标签:
【中文标题】Rails 预编译错误(无效的 UTF-8 字节序列)【英文标题】:Rails precompiling error (invalid UTF-8 byte sequence) 【发布时间】:2013-01-17 20:44:57 【问题描述】:我不小心在 assets/images 中放了一个 js 文件,现在即使我删除了 js 文件,heroku 也不让我预编译我的资源。
这是我收到的错误消息
AssetSync: YAML file found /tmp/build_326asn5xl82tm/config/asset_sync.yml settings will be merged into the configuration
rake aborted!
/tmp/build_326asn5xl82tm/app/assets/images/images/index_solid.js has a invalid UTF-8 byte sequence
/tmp/build_326asn5xl82tm/vendor/bundle/ruby/1.9.1/gems/sprockets-2.2.2/lib/sprockets/utils.rb:19:in `block (2 levels) in read_unicode'
【问题讨论】:
你应该试着清空你的 /tmp/ 目录 我试过了。仍然收到相同的错误消息 【参考方案1】:尝试进入 Heroku bash 并使用 rm 删除文件。
heroku run bash
【讨论】:
我试过了。它说没有这样的文件或目录。我删除了应用程序文件夹中的所有文件,但错误仍然存在。【参考方案2】:您可以查看几个选项。此类错误通常是由于 yaml 文件中存在非 ASCII 字符(如 Ñ)。
我想我记得运行过这个错误,最后我只是删除了非 ASCII 字符。在js文件中。
有时可以通过安装magic_encoding
gem 并在文件顶部使用# encoding: utf-8
来解决此类错误。但是,鉴于错误,我认为它不会起作用
【讨论】:
以上是关于Rails 预编译错误(无效的 UTF-8 字节序列)的主要内容,如果未能解决你的问题,请参考以下文章
Ruby/Rails CSV 解析,UTF-8 中的无效字节序列
Ruby on Rails - 来自 Paypal 的参数:utf-8 中的无效字节序列
Ruby on Rails“由于bot而导致的UTF-8中无效的字节序列”