当我查询此网址时

http://mywebsite.com/foos/


Django给我:

Page not found (404)
Request Method:     GET
Request URL:    http://mywebsite.com/foos//
The current URL, , didn't match any of these.


错误:
-在“请求网址”的末尾加“ /”,
-当前网址为空。

我的规格:
我用nginx作为fast_cgi的反向代理来运行django网站。

在这里我的网站conf为nginx:

server {
         listen   80;
         server_name  mywebsite.com;


             location / {
                     fastcgi_pass unix:/tmp/_var_wwwdjango_mywebsite.socket;
                     include /etc/nginx/fastcgi_params;
             }
    }


这是我的fastcgi_params文件:

fastcgi_param   QUERY_STRING            $query_string;
fastcgi_param   REQUEST_METHOD          $request_method;
fastcgi_param   CONTENT_TYPE            $content_type;
fastcgi_param   CONTENT_LENGTH          $content_length;
fastcgi_param   PATH_INFO               $fastcgi_script_name;
fastcgi_param   SCRIPT_FILENAME         $request_filename;
fastcgi_param   SCRIPT_NAME             $fastcgi_script_name;
fastcgi_param   REQUEST_URI             $request_uri;
fastcgi_param   DOCUMENT_URI            $document_uri;
fastcgi_param   DOCUMENT_ROOT           $document_root;
fastcgi_param   SERVER_PROTOCOL         $server_protocol;

fastcgi_param   GATEWAY_INTERFACE       CGI/1.1;
fastcgi_param   SERVER_SOFTWARE         nginx/$nginx_version;

fastcgi_param   REMOTE_ADDR             $remote_addr;
fastcgi_param   REMOTE_PORT             $remote_port;
fastcgi_param   SERVER_ADDR             $server_addr;
fastcgi_param   SERVER_PORT             $server_port;
fastcgi_param   SERVER_NAME             $server_name;

#fastcgi_param  HTTPS                   $server_https;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param   REDIRECT_STATUS         200;


备注:


如果我在模式中添加url(r'^$', 'myapp.views.index'),它将为我的所有请求呈现视图...因此,这显然是nginx conf或fast_cgi问题。
当我使用django开发服务器执行网站时,我的网址就可以了。

最佳答案

您缺少PATH_INFO参数。

fastcgi_param PATH_INFO $fastcgi_script_name;


请参阅nginx文档:http://wiki.nginx.org/DjangoFastCGI

如果您在自己喜欢的搜索引擎中尝试使用“ nginx PATH_INFO django”,则看起来某些用户也必须删除SCRIPT_NAME参数才能使其正常工作。

关于django - 使用Nginx和fastcgi部署的Django的空“当前URL”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9298335/

10-09 20:26
查看更多