1

Rails 3.2.2アプリで1.2.2の高電圧を使用していますが、ページが見つからないときにアプリでカスタム404を起動できないようです。「ルーティングエラー、そのようなものはありません。ページ:"エラーページ。

Routes.rb:

...

match '/signup',  to: 'users#new'

root :to => 'high_voltage/pages#show', :id => 'home'

match '/404', :to => 'errors#not_found'
match '/422', :to => 'errors#server_error'
match '/500', :to => 'errors#server_error'

match '/:id' => 'high_voltage/pages#show', :as => :static, :via => :get

また、application.rbに次のように設定しました(これは、ルーティングエラーを開始するRails 3.2の方法であると思います)。

config.exceptions_app = self.routes

しかし、それでもデフォルトのルーティングエラーページが表示されます。

また、アプリコントローラーでこれを使用してみました。

unless config.consider_all_requests_local
        rescue_from Exception, :with => :render_500
        rescue_from ActiveRecord::RecordNotFound, :with => :render_404
        rescue_from ActionController::RoutingError, :with => :render_404
        rescue_from ActionController::UnknownController, :with => :render_404
        rescue_from ActionController::UnknownAction, :with => :render_404
    end

    protected

    def render_500 exception
      logger.error exception.inspect
      render :template => "/errors/server_error.html.haml", :status => 500, :layout => 'application'
    end

    def render_404 exception
      logger.error exception.inspect
      render :template => "/errors/not_found.html.haml", :status => 404, :layout => 'application'
    end

しかし、それでも機能しません。

困った!誰か助けてもらえますか?

4

1 に答える 1

2

次の変更を加えることで、高電圧で動作するカスタム 404 ページを取得できます。

注: ローカルでテストしている場合はRAILS_ENV=production rails s、開発モードで別の 404 エラー ページが表示されるため、実行する必要があります。

# config/application.rb
config.exceptions_app = self.routes

# config/routes.rb
get '/404', to: 'errors#not_found'

ErrorsController次に、と のビューを作成するだけです。errors/not_found.html.erb

于 2013-12-07T01:46:16.187 に答える