3

このURLを照会すると

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.

エラー:
- リクエスト URL では、末尾に「/」を追加します
。 - 現在の URL は空です。

私の仕様:
私は自分のdjango Webサイトをnginxをfast_cgiへのリバースプロキシとして実行しています。

nginx の私のウェブサイト conf は次のとおりです。

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 開発サーバーで Web サイトを実行すると、URL は問題ありません。

4

1 に答える 1

3

PATH_INFO パラメータがありません。

fastcgi_param PATH_INFO $fastcgi_script_name;

nginx のドキュメントを参照してください: http://wiki.nginx.org/DjangoFastCGI

お気に入りの検索エンジンで「nginx PATH_INFO django」を試してみると、一部のユーザーはそれを機能させるために SCRIPT_NAME パラメータも削除する必要があったようです。

于 2012-02-15T18:56:07.980 に答える