2

次の urlpatterns があります。

urlpatterns = patterns('',
   url(r'^$',         'opeiaa.views.home',    name='home'),
   url(r'^store/$',   'opeiaa.views.store',   name='store'),
   url(r'^resume/$',  'opeiaa.views.resume',  name='resume'),
   url(r'^contact/$', 'opeiaa.views.contact', name='contact'),
   url(r'^gallery/',  include('gallery.urls')),

   url(r'^admin/',    include(admin.site.urls)),
)

...そして、この種のテンプレートタグを使用しています:

<a class='nav-link' href='{% url 'contact' %}'>Contact</a>

URL は としてページにレンダリングされますhttp://localhost:8000/contact/。テストに使用すると、すべて正常に動作./manage.py runserverします...

...しかし、実行./manage.py runfcgiすると、連絡先ページに移動すると、ナビゲーションの URL がhttp://localhost:8000/contact/contact/! 先頭にスラッシュを入れて絶対 URL にしようとしましたが、スラッシュがなくても絶対 URL のように見えます。

私はnginxをフロントエンドとして使用しており、そこからの関連構成は次のとおりです。

location / {
    include fastcgi_params;
    fastcgi_pass unix:/tmp/django.sock;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    fastcgi_pass_header Authorization;
    fastcgi_intercept_errors off;
}

Django 1.6 & Python 2.7.4 を使用しています。誰にも洞察がありますか?

4

1 に答える 1

0

8 か月後、私のサイトの別の 1 つで発生したときに、SCRIPT_NAME以前に設定されていたため、これを理解していましたinclude fastcgi_params

最終的な作業構成スニペット:

location / {
    include fastcgi_params;
    fastcgi_param SCRIPT_NAME "";
    fastcgi_pass unix:/tmp/django.sock;
    fastcgi_param PATH_INFO $fastcgi_script_name;
    fastcgi_pass_header Authorization;
    fastcgi_intercept_errors off;
}
于 2014-10-23T06:36:50.980 に答える