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ファイルが原因のようです。私はすでにこのファイルをテキストメイトで最初から再作成して、奇妙な文字を削除しようとしましたが、それは機能しませんでした。うまくいくように見える唯一のことは、これを私の一番上に追加することですbootstrap_and_overrides.css.scss

@charset "UTF-8";

これにより、rakeアセットを実行できます:プリコンパイルしてからHerokuにデプロイしますが、それはハックとダーティフィックスのようです。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

Declaring correct encoding for your file is not a hack, a text file always needs a declared encoding and physical encoding. Anyways, you could just remove all non-ascii characters with iconv on the file:

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

Then the resulting file will work with virtually any encoding.

于 2013-01-17T12:00:06.627 に答える