我有一个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文件似乎是罪魁祸首。我已经尝试过在文本伴侣中从头开始重新创建此文件,以消除所有奇怪的字符,但这种方法不起作用。似乎唯一起作用的就是将其添加到我的bootstrap_and_overrides.css.scss顶部:

@charset "UTF-8";


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

我不知道这是哪里出了问题。

最佳答案

检查您的CSS文件。字符\xE2通常与不属于ASCII字符集的双引号字符相关。在编辑器中,它们通常看起来像是更倾斜的双引号。 “mystring”"mystring"

使用@charset声明不是一个技巧,但是如果您不需要使用UTF-8字符,则最好将其删除。

10-05 21:00
查看更多