部署 部署时 invalid byte sequence in UTF-8 错误,求解 [已解决]

au3034 · 2013年04月10日 · 最后由 luikore 回复于 2013年04月11日 · 9868 次阅读

开发环境下正常,部署在 ubuntu12.04 下,ruby 1.9.2 rails3.2.2

~$ echo $LANG zh_CN.UTF-8

运行提示 invalid byte sequence in UTF-8

错误位于

9: <%= stylesheet_link_tag "bootstrap.min","bootstrap-responsive.min", "jquery-ui","custom" %>

注释掉正常。 经检查所有 css 文件均为 utf-8 编码,google 无果,望大家帮助。

------我是分割线------

经检查确系 compiling asset 的问题,使用脚本检查了 assets 文件夹中的编码均正常,最后发现是 images 中的 某图像文件名使用了非英文字符导致无法 compiling(垃圾图像文件)。删除文件后正常。

附:检查编码脚本 https://gist.github.com/1301199/a19adcb7687f2adfc927c9e8da3d716960833797

stylesheet_link_tag 不会去读 css 文件的,和 css 文件的编码无关

是这个 erb 前面部分的问题。

两边环境应该有不一样的地方,例如数据库编码..?

#1 楼 @luikore 我使用另一个没有 css 和 js 的 layout 渲染是没有问题的,而且注释掉 stylesheet_link_tag 和 javascript_include_tag 后,log 里还有 Error compiling asset default_user.jpg: 的错误信息,应该就是 compiling asset 的问题,但是就是不知如何解决。

#2 楼 @au3034 我不信... 你把这个 layout 改成只包含 <%= stylesheet_link_tag ... %> 会出错不?

#3 楼 @luikore 单行 stylesheet_link_tag 的 layout 问题依旧 :-( 而且当我执行 myapp$ rake assets:precompile RAILS_ENV=development 出现了同样的错误提示

rake aborted! invalid byte sequence in UTF-8

#4 楼 @au3034 诡异... stylesheet_link_tag 完全不读文件,只生成一个 <link> 标签才对... 给的参数文件就算不存在也不会出错的,除非模板文件头上有个 bom... 1.9.2 的话设置环境变量 RUBYOPT=-KU 可能可以解决问题但就找不到问题在哪了...

需要 登录 后方可回复, 如果你还没有账号请 注册新账号