Nginx + Django + Admin + django-tinymce + fastcgi报告500 - 似乎是媒体路径问题

时间:2011-09-15 22:13:42

标签: django nginx fastcgi django-tinymce

我的fastcgi nginx设置和Django出现了500个服务器错误。问题似乎与在管理站点中保存模型/条目有关。问题似乎是重定向上的路径似乎是错误的,因此django无法处理它们并且它会崩溃。这是我的nginx配置:

server {
        listen 80;
    rewrite ^/(.*) http://www.xxxxxx/$1 permanent;
    server_name sxxxxxxx;

}

server {

    listen 80;
    server_name www.xxxxx

    access_log /srv/www/sxxxxxx/logs/nginx_access.log;
    error_log /srv/www/sxxxxxxx/logs/nginx_error.log;

    location /media {
        root /srv/www/sxxxxx/public_html/section9/static/;
    }

    location / {
        root /srv/www/sxxxxxx/public_html/section9;
        fastcgi_pass unix:/tmp/section9.sock;

        #include fastcgi.conf;

        fastcgi_param PATH_INFO $fastcgi_script_name;

        fastcgi_param REQUEST_URI       $request_uri;
        fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
        fastcgi_param REQUEST_METHOD $request_method;
            fastcgi_param CONTENT_TYPE $content_type;
            fastcgi_param CONTENT_LENGTH $content_length;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_param  SERVER_ADDR        $server_addr;
        fastcgi_param  SERVER_PORT        $server_port;
        fastcgi_param  SERVER_NAME        $server_name;
        fastcgi_param  SERVER_PROTOCOL    $server_protocol;
        fastcgi_param REQUEST_URI       $request_uri;
        fastcgi_param DOCUMENT_URI      $document_uri;
        fastcgi_param DOCUMENT_ROOT     $document_root;
        fastcgi_param REMOTE_USER       $remote_user;
        fastcgi_param REMOTE_ADDR       $remote_addr;
        fastcgi_param REMOTE_PORT       $remote_port;
        fastcgi_param SERVER_SOFTWARE   "nginx";
        fastcgi_param GATEWAY_INTERFACE "CGI/1.1";

        fastcgi_param UID_SET           $uid_set;
        fastcgi_param UID_GOT           $uid_got;

        fastcgi_pass_header Authorization;
                fastcgi_intercept_errors off;
    }

}

以下是错误消息:

Traceback (most recent call last):

 File "/usr/lib/pymodules/python2.6/django/core/handlers/base.py", line 92, in get_response
   response = callback(request, *callback_args, **callback_kwargs)

 File "/usr/lib/pymodules/python2.6/django/contrib/admin/options.py", line 252, in wrapper
   return self.admin_site.admin_view(view)(*args, **kwargs)

 File "/usr/lib/pymodules/python2.6/django/views/decorators/cache.py", line 44, in _wrapped_view_func
   response = view_func(request, *args, **kwargs)

 File "/usr/lib/pymodules/python2.6/django/contrib/admin/sites.py", line 186, in inner
   return view(request, *args, **kwargs)

 File "/usr/lib/pymodules/python2.6/django/db/transaction.py", line 240, in _commit_on_success
   res = func(*args, **kw)

 File "/usr/lib/pymodules/python2.6/django/contrib/admin/options.py", line 819, in change_view
   obj = self.queryset(request).get(pk=unquote(object_id))

 File "/usr/lib/pymodules/python2.6/django/db/models/query.py", line 299, in get
   clone = self.filter(*args, **kwargs)

 File "/usr/lib/pymodules/python2.6/django/db/models/query.py", line 498, in filter
   return self._filter_or_exclude(False, *args, **kwargs)

 File "/usr/lib/pymodules/python2.6/django/db/models/query.py", line 516, in _filter_or_exclude
   clone.query.add_q(Q(*args, **kwargs))

 File "/usr/lib/pymodules/python2.6/django/db/models/sql/query.py", line 1675, in add_q
   can_reuse=used_aliases)

 File "/usr/lib/pymodules/python2.6/django/db/models/sql/query.py", line 1614, in add_filter
   connector)

 File "/usr/lib/pymodules/python2.6/django/db/models/sql/where.py", line 56, in add
   obj, params = obj.process(lookup_type, value)

 File "/usr/lib/pymodules/python2.6/django/db/models/sql/where.py", line 269, in process
   params = self.field.get_db_prep_lookup(lookup_type, value)

 File "/usr/lib/pymodules/python2.6/django/db/models/fields/__init__.py", line 210, in get_db_prep_lookup
   return [self.get_db_prep_value(value)]

 File "/usr/lib/pymodules/python2.6/django/db/models/fields/__init__.py", line 361, in get_db_prep_value
   return int(value)

ValueError: invalid literal for int() with base 10: '31/favicon.ico'


<WSGIRequest
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
META:{'CONTENT_LENGTH': '',
 'CONTENT_TYPE': '',
 'HTTP_ACCEPT': '*/*',
 'HTTP_ACCEPT_CHARSET': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
 'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
 'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
 'HTTP_CONNECTION': 'keep-alive',
 'HTTP_HOST': 'www.xxxxx',
 'HTTP_USER_AGENT': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.220 Safari/535.1',
 'PATH_INFO': u'/admin/portfolio/portfolioentry/31/favicon.ico/',
 'QUERY_STRING': '',
 'REQUEST_METHOD': 'GET',
 'SCRIPT_NAME': u'',
 'SERVER_NAME': 'localhost',
 'SERVER_PORT': '80',
 'SERVER_PROTOCOL': 'HTTP/1.0',
 'wsgi.errors': <flup.server.fcgi_base.TeeOutputStream object at 0xa779e6c>,
 'wsgi.input': <flup.server.fcgi_base.InputStream object at 0xa779c6c>,
- Hide quoted text -
 'wsgi.multiprocess': True,
 'wsgi.multithread': False,
 'wsgi.run_once': False,
 'wsgi.url_scheme': 'http',
 'wsgi.version': (1, 0)}>

所以我似乎遇到了媒体问题。所有JS和CSS似乎都附加到现有的URL上,这表明{{MEDIA_URL}}或管理站点使用的任何指令在这个相当奇怪的情况下都不起作用。

我想指出,这似乎发生在具有tinymce插件的模型上,而不是其他网站上的

'PATH_INFO':你'/ admin / portfolio / portfolioentry / 31 / favicon.ico /',

显然上面的错误。我不知道为什么最近发生这种情况。可能是由于升级或类似。

非常感谢任何其他建议。我想也许可以通过推荐人做些事情,但可能不会。

0 个答案:

没有答案