开发模式下的 rails 应用程序会提供内部服务器错误,而不是通常的带有跟踪的错误页面。也没有任何信息log/development.log
。不管是什么服务器。应任何要求。
怎么了?
开发模式下的 rails 应用程序会提供内部服务器错误,而不是通常的带有跟踪的错误页面。也没有任何信息log/development.log
。不管是什么服务器。应任何要求。
怎么了?
ruby 1.9 下无效字符编码导致的语法错误。当ruby(和rails)在源文件中默认需要ASCII时,您很可能使用了utf-8。(是的,对吧?)
解决方案是使用 BOM http://www.w3.org/International/questions/qa-byte-order-mark或把
# encoding: UTF-8
或者
# coding: UTF-8
在 utf-8 中的文件之上。
要UTF-8
全局设置,你可以把
config.encoding = "utf-8"
在你config/application.rb
这相当于
Encoding.default_external = Encoding::UTF_8
Encoding.default_internal = Encoding::UTF_8
这又相当于把:
# encoding: UTF-8
或每个文件顶部的 BOM。
这允许在 rails 应用程序的所有文件上全局使用 utf-8。
如果您想在所有 ruby 文件上使用全局选项,可以使用-E
or -K
ruby 选项并通过RUBYOPT
环境变量进行设置,例如:
export RUBYOPT=-Ku
或者
export RUBYOPT='-E utf-8:utf-8'
见http://www.manpagez.com/man/1/ruby/ 见http://zargony.com/2009/07/24/ruby-1-9-and-file-encodings
还有一个 gem 可以在 Rails 项目中需要它的每个文件的顶部设置魔术注释:h ttps://github.com/m-ryan/magic_encoding