Ruby on rails 3 Rake资产:预编译问题。无效的UTF-8字节序列
轨道3.1。我正在尝试预编译资产Ruby on rails 3 Rake资产:预编译问题。无效的UTF-8字节序列,ruby-on-rails-3,Ruby On Rails 3,轨道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
$ 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)
有什么想法吗?这是链轮的问题。现在,您可以通过在注释中删除作者姓名“a”中的umlaut来修复此问题。旧的:
Copyright (c) 2010 - 2011 Johan Säll Larsson
新的:
这个问题似乎与Heroku、链轮和解释样式表中的非ascii字符有关 在顶级样式表的第一行,包括: @字符集“UTF-8” charset指令必须位于顶部,否则heroku的预编译将插入 @字符集“US-ASCII” 请注意,如果在顶级样式表中使用清单,则不能同时使用charset指令,因为它们都希望位于第一行。我的解决方法是在我的布局中分别包含具有非ascii字符的样式表(而不是作为清单的一部分) 我想要一个比这个解决方法更好的答案。 而不是
config.assets.precompile += %w( files )
或
config.assets.precompile Jason,谢谢你的回答。但在这种情况下我不使用heroku。添加字符集指令也没用。谢谢你的回答。但是我在我的项目的任何安装的gems中都找不到这个子字符串。在有问题的文件中,搜索regex模式[^a-zA-Z0-9*\()/\-,:={};\[\]'+$\?\^!“%&\\\@\\\\\]
(这是用于vim搜索的;您可能需要以不同的方式转义某些字符)。您应该能够很快找到像±
这样的字符,并将其替换为标准ASCII字符(这就是导致此错误的原因)。非常感谢vim正则表达式-必须添加\t以允许使用制表符
config.assets.precompile = %w( files )
config.assets.precompile += %w( files )
config.assets.precompile << %w( files )