2016-11-03 19 views
2

/blogサブパスにdjango(正確にはwagtail)アプリケーションを提供するようにnginxとuwsgiを設定しようとしています。この質問へのほとんどの答えは(this oneをのような)使用することをお勧め: サブパスでnginx + uwsgiに設定すると、DjangoアプリのURLが間違っています

location /blog { 
    include uwsgi_params; 
    uwsgi_pass unix:/run/uwsgi/application.sock; 
    uwsgi_param SCRIPT_NAME /blog; 
    uwsgi_modifier1 30; 
} 

は、残念ながらそれは私のために動作しません。 /blogにアクセスすると、サブパスが複製され、 /blog/blog/にリダイレクトされます。 Wagtailは404ページを表示し、 /blog/blog/は存在しません。私はそれがnginxかdjangoの問題かどうかはわかりません。

答えて

0

私は同様の問題を抱えていましたが、これを修正しました。 Wagtail 1.13 + uwsgi + nginx/1.10.3(Ubuntu)で動作します。 nginxのblog.confファイル内

ROOT_URL = '/blog' 
USE_X_FORWARDED_HOST = True 
FORCE_SCRIPT_NAME  = ROOT_URL 
BASE_PATH    = ROOT_URL 

APP_SUB_URL = ROOT_URL 
if len(APP_SUB_URL): 
    FORCE_SCRIPT_NAME = APP_SUB_URL 

STATIC_URL = APP_SUB_URL + "/static/" 
MEDIA_URL = APP_SUB_URL + "/media/" 
ADMIN_MEDIA_PREFIX = APP_SUB_URL + "/static/admin/" 
LOGIN_URL = APP_SUB_URL + "/login/" 

:セキレイブログ/設定/ base.py

location /blog/ { 
    include uwsgi_params; 
    rewrite /blog/(.*) /$1 break; 
    uwsgi_pass  unix:/run/uwsgi/application.sock; 
} 

、あなたはnginxのは、のために静的ファイルを扱うことができますより良いパフォーマンス:

location /blog/static/ { 
    access_log off; 
    expires 3600; 
    alias /path/to/wagtail/app/blog/static/; 
} 

location /blog/media/ { 
    access_log off; 
    expires 864000; 
    alias /path/to/wagtail/app/media/; 
} 

また、/ path/to/wagtail/app/blog/static /にある管理者の静的ファイルにシンボリックリンクを追加する必要がありました。

cd /path/to/wagtail/app/blog/static/ 
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtailadmin/static/wagtailadmin/ 
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtaildocs/static/wagtaildocs/ 
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtailembeds/static/wagtailembeds/ 
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtailimages/static/wagtailimages/ 
ln -s ../../../venv/lib/python3.5/site-packages/wagtail/wagtailsnippets/static/wagtailsnippets/ 
関連する問題