2

澄清一下,这是我第一次将 django 网站投入生产。

我在 django 中有一个可以在本地运行的简单网站。但是当我将它部署在生产服务器中时,它会在我提交表单时进入重定向循环。然后浏览器只是告诉我发生了重定向循环并要求清空缓存等等......

此问题发生在管理员中。我不知道它是否会发生在前端,因为它在前端没有任何形式。

笔记:

  • 我没有任何时髦的中间件。
  • 我在具有或多或少相同规格的生产服务器的虚拟机中进行了测试,它工作正常。
  • 提交的数据得到正确处理和保存
  • 网站的其余部分都很好

我通过 .htaccess 在共享主机中使用 apache 和 wsgi。

在这一点上,我不排除 dns 配置错误的可能性,但我已经检查过并且看起来很好。

.ht 访问:

AddHandler wsgi-script .wsgi
DirectoryIndex app22.wsgi

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteRule ^(.*)$ app22.wsgi/$1 [QSA,PT,L]
</IfModule>

app22.wsgi:

import os, sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'BTT.settings'

path = '/home/bttmonch/apps'
if path not in sys.path:
    sys.path.append(path)

path = '/home/bttmonch/apps/ENV/lib/python2.7/site-packages'
if path not in sys.path:
    sys.path.append(path)

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

在这一点上,我创建了一个只激活了管理员的全新应用程序,以查看它是否是一些编码问题并将其放在服务器上。同样的事情也会发生。

我正在使用我之前提到的相同的 .htaccess 和 .wsgi 文件。

我的 urls.py 只是基本的:

from django.conf.urls.defaults import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Uncomment the next line to enable the admin:
    url(r'^admin/', include(admin.site.urls)),
)

我正在通过 test.domainname.com 访问该应用程序。我已经尝试通过 test.domainname.com、test.domainname.com/app22.wsgi、domainname.com/test/ 和 domainname.com/test/app22.wsgi 访问它...

4

1 回答 1

0

在服务器中闲逛后,我停止了重定向循环。但是现在每次我保存表单时都会收到 403 错误。然后我清除了浏览器cookie,一切恢复正常,表单数据成功保存在数据库中。

在这一点上,只是不要现在还有什么可以尝试的......

于 2012-06-16T20:32:15.073 回答