# File lib/merb-core/rack/application.rb, line 38
      def call(env) 
        strip_path_prefix(env) if @path_prefix  # Strip out the path_prefix if one was set 
        path = env['PATH_INFO'] ? env['PATH_INFO'].chomp('/') : ""
        cached_path = (path.empty? ? 'index' : path) + '.html'
        Merb.logger.info "Request: #{path}"
        if file_exist?(path) && env['REQUEST_METHOD'] =~ /GET|HEAD/ # Serve the file if it's there and the request method is GET or HEAD
          serve_static(env)
        elsif file_exist?(cached_path) && env['REQUEST_METHOD'] =~ /GET|HEAD/ # Serve the page cache if it's there and the request method is GET or HEAD
          env['PATH_INFO'] = cached_path
          serve_static(env)
        else                              # No static file, let Merb handle it
          if path =~ /favicon\.ico/
            return [404, {"Content-Type"=>"text/html"}, "404 Not Found."]
          end  
          begin
            controller = ::Merb::Dispatcher.handle(env)
          rescue Object => e
            return [500, {"Content-Type"=>"text/html"}, e.message + "<br/>" + e.backtrace.join("<br/>")]
          end
          Merb.logger.info "\n\n"
          Merb.logger.flush
          [controller.status, controller.headers, controller.body]
        end
      end