我在我的应用程序中遇到了Rails 3和HAML的一些问题:由于某种原因,Rails似乎没有加载处理haml文件的处理程序.每个操作都会显示与此类似的错误消息:
缺少模板contact_search/index with {:formats => [:html],:handlers => [:rjs,:rhtml,:rxml,:builder,:erb],:locale => [:en,:en]} in查看路径"/ var/www/osphonebook/app/views","/ var/www/osphonebook/vendor/bundle/ruby/1.8/gems/devise1.3.4/app/views"
看看"处理程序"选项:它没有:haml ...
问题是这只发生在我公司设置的服务器上的生产模式中.在开发和测试模式下,它工作正常.此外,如果我在我的开发PC上以生产模式启动应用程序,它可以工作.
有关服务器的一些信息:
更新(2011年6月6日):升级到Ruby 1.9,它仍然无法正常工作.
ruby 1.9.2p0 (2010-08-18 revision 29036) [i486-linux]
Gems included by the bundle:
abstract (1.0.0)
actionmailer (3.0.7)
actionpack (3.0.7)
activemodel (3.0.7)
activerecord (3.0.7)
activeresource (3.0.7)
activesupport (3.0.7)
arel (2.0.10)
bcrypt-ruby (2.1.4)
builder (2.1.2)
bundler (1.0.14)
devise (1.3.4)
erubis (2.6.6)
haml (3.1.1)
i18n (0.5.0)
kgio (2.4.1)
mail (2.2.19)
mime-types (1.16)
orm_adapter (0.0.5)
pg (0.11.0)
polyglot (0.3.1)
rack (1.2.3)
rack-mount (0.6.14)
rack-test …Run Code Online (Sandbox Code Playgroud) 我通过实现最基本的服务器测试了GServer的性能,并检查了它可以处理的每秒请求数.结果是81.与我最基本的TCPSocket服务器可以处理的每秒9900个请求相比,这是非常慢的.我做错了什么或者GServer真的这么慢吗?
客户实施:
require 'socket'
tStart = Time.now
u = 0
while Time.now - tStart<5
socket = TCPSocket.open('localhost', 1234)
socket.puts 'a'
socket.gets
socket.close
u += 1
end
puts u.to_s
Run Code Online (Sandbox Code Playgroud)
GServer实施:
require 'gserver'
class JServer < GServer
def initialize(*args)
super(*args)
end
def serve( io )
io.gets
io.puts( 'a' )
end
end
server = JServer.new(1234)
server.start
loop { break if server.stopped? }
Run Code Online (Sandbox Code Playgroud)
TCPSocket服务器实现:
require 'socket'
server = TCPServer.open(1234)
loop {
client = server.accept
puts client.gets
client.puts( 'a' )
client.close
}
Run Code Online (Sandbox Code Playgroud)