耙资产:预编译问题。 UTF-8字节序列无效

时间:2011-10-03 15:12:49

标签: ruby-on-rails-3

Rails 3.1。我正在尝试预编译资产。

$ rake assets:precompile RAILS_ENV=production
  rake aborted!
  /home/user/project/public/assets/jquery-ui.min-0e8a11c7e970b57b4bf5c449cb14480d.js.gz has a invalid UTF-8 byte sequence
  Tasks: TOP => assets:precompile

  (See full trace by running task with --trace)

有什么想法吗?

3 个答案:

答案 0 :(得分:9)

这是Sprockets的问题。您现在可以通过在评论中从作者姓名中的“a”中删除变音来解决此问题。老:

Copyright (c) 2010 - 2011 Johan Säll Larsson

新:

Copyright (c) 2010 - 2011 Johan Sall Larsson

答案 1 :(得分:3)

此问题似乎与Heroku,Sprockets和解释样式表中的非ascii字符有关。

在顶级样式表的第一行,包括:

@charset“UTF-8”;

charset指令必须位于顶部,否则heroku的预编译将插入

@charset“US-ASCII”;

请注意,如果您在顶级样式表中使用清单,则也不能使用charset指令,因为它们都希望位于第一行。我的解决方法是在我的布局中包含分别具有非ascii字符的样式表(而不是作为清单的一部分)。

我喜欢比这种解决方法更好的答案。

答案 2 :(得分:3)

https://github.com/sstephenson/sprockets/issues/219

config.assets.precompile = %w( files )

而不是

config.assets.precompile += %w( files )

config.assets.precompile << %w( files )