2

現在、django-cms 2.4.2 を使用しています。DEBUG=True のローカル マシンで、127.0.0.1/ にアクセスすると 127.0.0.1/en/ にリダイレクトされるという、特有の問題が発生しました。実稼働サーバー (virtualenvs、apache) で実行している場合、mysite.com/ にアクセスすると 404 が発生しますが、mysite.com/en/ がホームページを表示している間、ホームページは後ろに表示されます。問題の根本を見つけようとしていますが、それが URL、wsgi、または設定にあるかどうかを判断できないようです。

urls.py

from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin_tools/', include('admin_tools.urls')),
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

urlpatterns += i18n_patterns('',
    url(r'^accounts/', include('allauth.urls')),
    ... apps ...
    url(r'^', include('cms.urls')),
)

# Static files
urlpatterns += staticfiles_urlpatterns()

if settings.DEBUG:
    urlpatterns = patterns('',
        (r'^' + settings.MEDIA_URL.lstrip('/'), include('appmedia.urls')),
    ) + urlpatterns
else:
    from django.conf.urls.defaults import *
    handler500 = 'error_pages.views.server_error'
    handler404 = 'error_pages.views.custom_404'
    handler403 = 'error_pages.views.permission_denied'
    handler400 = 'error_pages.views.bad_request'

私は持っていて、設定django.middleware.locale.LocaleMiddlewarecms.middleware.language.LanguageCookieMiddleware追加しました。

私の Apache httpd.conf では:

NameVirtualHost *:27567

# Begin site configuration
<VirtualHost *:27567>
    WSGIScriptAlias / /path/to/wsgi.$
    ErrorLog "/path/to/log/error_path.log"
</VirtualHost>

django で発生する可能性のあるエラーをログに記録してみました。

WARNING 2013-09-18 14:04:34,380 Not Found: /

編集:

Debug=True の場合、問題は解決したようです。allowed_hosts 設定を'localhost'およびに設定しました'domain.com'。ロードされたミドルウェアのシーケンスを確認しましたが、i18n は true に設定されていますが、まだ問題の場所を特定できません。

編集2:

問題が見つかりました。エラーページのビューが次のエラーページにあります。

from django.shortcuts import render

def server_error(request):
    return render(request, '500.html')

おそらく、django-cms の URL 間の衝突です。

4

0 に答える 0