Django url 国际化在生产模式下不起作用

标签 django url internationalization

我正在 django 1.4 中编程一个具有多语言支持(法语和英语)的站点。

在 Debug模式下一切正常。然后我转到生产模式(DEBUG = False)并且网址不再工作。

前任。 : 在 Debug模式下,当我请求页面/agricole/时,django 会自动重定向到/fr/agricole。

但是在生产模式下,它会发送错误并且不再重定向页面。

我已经在网上搜索过,检查了 LocaleMiddleware,就像 django 文档和所有内容中所说的那样,但它仍然失败。

我不能在模板中硬编码/fr/* ,因为它会破坏多语言支持。
并手工编写重定向器的重定向器,这是不干净的。

我想念什么?模板标签?网址配置?

我的

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.locale.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.doc.XViewMiddleware',
    'cms.middleware.page.CurrentPageMiddleware',
    'cms.middleware.user.CurrentUserMiddleware',
    'cms.middleware.toolbar.ToolbarMiddleware',
    'cms.middleware.language.LanguageCookieMiddleware',
)

和我的 url.py
from django.conf.urls.defaults import *
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings
from django.views.generic import RedirectView

admin.autodiscover()

import annonces.views as annonces

urlpatterns = i18n_patterns('',
    url(r'.*register/$', 'annonces.register', name='register'),
    url(r'^admin/', include(admin.site.urls)),
    url(r'accounts/profile/$', RedirectView.as_view(url='/')),
    url(r'^favicon\.ico$', RedirectView.as_view(url='static/favicon.ico')),
    url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
        {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
    (r'^accounts/', include('registration.backends.simple.urls')),
    (r'^tinymce/', include('tinymce.urls')),
    url(r'^longlat/(.*)$', 'annonces.longlat', name='longlat'),
    url(r'^', include('cms.urls')),
)

最佳答案

我发现了这个问题的问题。
如果您有一些处理 404 页面的中间件,那么此页面必须返回状态 404。如果它将返回其他状态,则 i18n 重定向将不起作用。

关于Django url 国际化在生产模式下不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25794161/

相关文章:

javascript - HTML编码°度数符号额外空格

url - URL 的哪些部分由 SSL 加密?

html - 日本手机网站开发的细节;测试?

python - 覆盖 Django 的 RelatedManager 方法

Ajax 和 Django render_to_response(如何在成功函数内呈现响应)

Javascript |用于替换当前窗口位置的链接/书签

ios - 如何从适用于 iOS 的 Chrome 回退打开应用程序网址

node.js - 如何在 Node 中启用 Intl 以使用 Jest 进行测试?

python - 为什么我得到 python manage.py syncdb 的错误 (IndentationError : unexpected indent)

django - 使用字符串访问模型的外键相关字段?