3

我有一个 rails 应用程序,当我尝试运行时出现奇怪的错误rake assets:precompile。它看起来像这样:

rake aborted!
Invalid US-ASCII character "\xE2"
  (in /Users/lee/Code/draper/app/assets/stylesheets/application.css.scss)
(sass):9

我不确定无效字符可能会滑入我的代码中。我正在使用 Twitter Bootstrap(boostrap-sass gem),我的bootstrap_and_overrides.css.scss文件似乎是罪魁祸首。我已经尝试在 text mate 中从头开始重新创建这个文件,以取出任何奇怪的字符,但这没有用。似乎唯一可行的是将其添加到我的顶部bootstrap_and_overrides.css.scss

@charset "UTF-8";

这使我可以运行 rake assets:precompile 然后部署到 Heroku,但这似乎是一种 hack 和肮脏的修复。我可以将其他使用 bootstrap-sass 的应用程序部署到 Heroku,而且 Heroku 能够在部署时运行 rake assets:precompile。现在解决它的唯一方法是在部署到 Heroku 之前包含@charset "UTF-8";然后在rake assets:precompile本地运行,以便它在部署期间跳过该步骤。

我不知道我哪里错了。

4

2 回答 2

5
于 2013-01-16T21:16:57.267 回答
2

为您的文件声明正确的编码不是 hack,文本文件总是需要声明的编码和物理编码。无论如何,您可以删除文件上带有 iconv 的所有非 ascii 字符:

iconv -t ASCII//IGNORE -f UTF8 < application.css.scss > application.css.scss.ascii

然后生成的文件几乎可以使用任何编码。

于 2013-01-17T12:00:06.627 回答