1

このガイドに従って、Ubuntu 11.10 に Django + Nginx をデプロイしました。Django は問題なく動作しますが、Nginx は静的ファイルを提供しません。

app.com/static/ をローカルフォルダー /project/app/static/ に向けようとしています

また、この質問のすべてを試してみましたが、役に立ちませんでした

ここに私のsettings.pyからの抜粋があります:

STATIC_ROOT = ''

STATIC_URL = '/static/'

ADMIN_MEDIA_PREFIX = DOMAIN_URL + '/static/admin/'

STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'),
)

そしてnginx.confから

server {
                listen 80;
                server_name localhost;
                # site_media - folder in uri for static files
                location /static/  {
                        autoindex on;
                        alias /project/app/static;
                        }
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|p$
  access_log   off; # po co mi logi obrazków :)
  expires      30d;
}
                location / {
                        # host and port to fastcgi server
                        fastcgi_pass 127.0.0.1:8080;
                        fastcgi_param PATH_INFO $fastcgi_script_name;
                        fastcgi_param REQUEST_METHOD $request_method;
                        fastcgi_param QUERY_STRING $query_string;
                        fastcgi_param CONTENT_TYPE $content_type;
                        fastcgi_param CONTENT_LENGTH $content_length;
                        fastcgi_pass_header Authorization;
                        fastcgi_intercept_errors off;
                        }

ここで何をすればいいですか?

これがnginxログです

  WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!" while read$
2012/04/17 13:48:24 [error] 15598#0: *3 open() "/etc/nginx/html/static/css/rese$
2012/04/17 13:48:24 [error] 15598#0: *4 open() "/etc/nginx/html/static/images/l$
2012/04/17 13:48:24 [error] 15598#0: *5 open() "/etc/nginx/html/static/js/scrip$
2012/04/17 13:48:24 [error] 15598#0: *6 open() "/etc/nginx/html/static/js/jquery$
2012/04/17 13:48:24 [error] 15598#0: *7 open() "/etc/nginx/html/static/style.cs$
2012/04/17 13:48:24 [error] 15598#0: *8 open() "/etc/nginx/html/static/js/jquery$
2012/04/17 13:48:24 [error] 15598#0: *5 open() "/etc/nginx/html/static/images/i$
2012/04/17 13:48:24 [error] 15598#0: *7 open() "/etc/nginx/html/static/images/i$
2012/04/17 13:48:24 [error] 15598#0: *8 open() "/etc/nginx/html/static/images/i$
2012/04/17 13:48:24 [error] 15598#0: *6 open() "/etc/nginx/html/static/images/s$
2012/04/17 13:48:24 [error] 15598#0: *3 open() "/etc/nginx/html/static/images/s$
2012/04/17 13:48:24 [error] 15598#0: *4 open() "/etc/nginx/html/static/images/s$
2012/04/17 14:07:33 [error] 16231#0: *1 FastCGI sent in stderr: "WSGIServer: mi$
WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!" while read$
2012/04/17 14:07:33 [error] 16231#0: *3 open() "/etc/nginx/html/static/css/rese$
2012/04/17 14:07:33 [error] 16231#0: *4 open() "/etc/nginx/html/static/style.cs$
2012/04/17 14:07:33 [error] 16231#0: *5 open() "/etc/nginx/html/static/js/jquery$
2012/04/17 14:07:33 [error] 16231#0: *6 open() "/etc/nginx/html/static/js/scrip$
2012/04/17 14:07:33 [error] 16231#0: *7 open() "/etc/nginx/html/static/js/jquery$
2012/04/17 14:07:34 [error] 16231#0: *7 open() "/etc/nginx/html/static/images/l$
2012/04/17 14:07:34 [error] 16231#0: *6 open() "/etc/nginx/html/static/images/i$
2012/04/17 14:07:34 [error] 16231#0: *4 open() "/etc/nginx/html/static/images/i$
2012/04/17 14:07:34 [error] 16231#0: *5 open() "/etc/nginx/html/static/images/i$
2012/04/17 14:07:34 [error] 16231#0: *3 open() "/etc/nginx/html/static/images/s$
2012/04/17 14:07:34 [error] 16231#0: *8 open() "/etc/nginx/html/static/images/s$
2012/04/17 14:07:34 [error] 16231#0: *5 open() "/etc/nginx/html/static/images/s$
2012/04/17 14:07:35 [error] 16231#0: *5 open() "/etc/nginx/html/static/images/f$
2012/04/17 14:10:30 [error] 16231#0: *9 FastCGI sent in stderr: "WSGIServer: mi$
WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!" while read$
2012/04/17 14:11:57 [error] 16471#0: *1 FastCGI sent in stderr: "WSGIServer: mi$
WSGIServer: missing FastCGI param SERVER_PORT required by WSGI!
WSGIServer: missing FastCGI param SERVER_PROTOCOL required by WSGI!" while read$

アップデート:

解決しました。nginx.conf でルートが何であるかを指定していませんでした。

顔やし

 server_name localhost;
                root /home/user/projects;
                # site_media - folder in uri for static files
                location /static/  {

                        root /static/;
}
4

3 に答える 3

1

nginxがファイルを提供しているように見えますが、存在しないだけです。これは、1) a が指定されておらずSTATIC_ROOT、2) 明らかに実行collectstaticされていないため、エラーが発生するためです。

まず、次を設定します。

STATIC_ROOT = '/project/app/static'

または、移植性を高めるには:

import os.path

STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')

次に、本番環境で次のコマンドを実行します。

python manage.py collectstatic
于 2012-04-17T14:49:41.967 に答える
1

nginx.conf でルートが何であるかを指定していませんでした。 顔やし

            server_name localhost;
            root /home/user/projects/;
            # site_media - folder in uri for static files
            location /static/  {

                    root /static/;}
于 2012-04-18T18:52:03.337 に答える
-1

Djangoは、実際には静的ファイルを提供するようには設計されていません。彼らはドキュメント全体でこれについて何度も言及しています。nginxを使用して静的ファイルを個別に提供し、djangoをその場所にポイントするだけです。

于 2012-04-17T14:01:21.107 に答える