FastcgiモードでDjangoを実行しています
./manage.py runfcgi method=threaded host=127.0.0.1 port=8080
Nginxで
server {
listen 80;
server_name myhostname.com;
access_log /var/log/nginx/sample_project.access.log;
error_log /var/log/nginx/sample_project.error.log;
location /static/ { # STATIC_URL
alias /home/www/myhostname.com/static/; # STATIC_ROOT
expires 30d;
}
location /media/ { # MEDIA_URL
alias /home/www/myhostname/static/; # MEDIA_ROOT
expires 30d;
}
location / {
include fastcgi_params;
fastcgi_pass 127.0.0.1:8080;
}
}
管理URLは
http://myhostname.com/admin/
私は、生成されたすべてのHTMLリンクが以下のように間違っていることに気付きます
...
<a href="/admin/admin/logout/">Log out</a>
...
私のurl.pyの下に
from django.conf.urls import patterns, include, url
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns("",
# Examples:
# url(r"^$", "configuratore.views.home", name="home"),
# url(r"^blog/", include("blog.urls")),
url(r"^admin/", include(admin.site.urls)),
)
Djangoが管理URLを複製しているようですが、理由がわかりません
回答:
回答№1は2必ず追加してください fastcgi_param SCRIPT_NAME "";
あなたの location /
nginx設定でブロックします。デフォルトでは、djangoは逆のURLの値を先頭に追加します。したがって、空のURLを設定するとうまくいきます。