2017-03-16 6 views
1

私はトラフィックが多いdjango-cmsサイトを持っています。同じサイトには、安らかなAPIを備えた追加のdjangoアプリもあります。
私はurls.pydjangocms urlリゾルバーのグリッドサイズを小さくする

urlpatterns = [ 

    url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', 
     {'sitemaps': {'cmspages': CMSSitemap}}), 
    url(r'^taggit_autosuggest/', include('taggit_autosuggest.urls')), 
    url(r'^select2/', include('django_select2.urls')), 
    url(r'^api/', include('api.urls')), 
] 

urlpatterns += i18n_patterns( 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^', include('cms.urls')), 
) 

次の問題は、APIは1つのそのURLを(/api/post/15用など)のためのアプリケーションレベルで404を返した場合、urls.py定義の最後の行は、404を遮ることであり、 302を返し、/en/api/post/15にリダイレクトします(英語がデフォルト言語であると仮定します)。

この動作は、すべてのCMS URIでは問題ありませんが、トラフィックが増加するAPIでは問題ありません。 django-cms urlが404から404を傍受しないようにするにはどうすればいいですか?

答えて

0

これは実際にはDjangoバグかもしれません。 django CMSは404を傍受せず、404がアプリケーションレベルで生成され、djangoのロケールミドルウェアがそれをキャッチしてリダイレクトを行います。明示的なアプリケーション404を傍受してはならないか、要求とのリゾルバの一致を使用してミドルウェアで一致するパターンがi18nであるかどうかを確認する必要があるため、これはバグと考えています。

関連する問題