开发模式下的rails app会产生内部服务器错误,而不是带有跟踪的常见错误页面。 log/development.log
中也没有信息。无论什么服务器。在任何要求。
有什么问题?
答案 0 :(得分:2)
ruby 1.9下由无效字符编码引起的语法错误。当ruby(和rails)在源文件中默认使用ASCII时,很可能你使用了utf-8。 (是的,对吗?)
解决方案是使用BOM http://www.w3.org/International/questions/qa-byte-order-mark或put
# 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
反过来相当于put:
# encoding: UTF-8
或每个文件顶部的BOM。
这允许在rails应用程序的所有文件上全局使用utf-8。
如果要在所有ruby文件上使用全局选项,可以使用-E
或-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