Django ckeditor upload не работает в продакшене

настройки джанго:

CKEDITOR_BROWSE_SHOW_DIRS = True
CKEDITOR_RESTRICT_BY_USER = True
CKEDITOR_RESTRICT_BY_DATE = False
CKEDITOR_UPLOAD_PATH = 'uploads/'

STATIC_ROOT = os.path.join(BASE_DIR, "static")
MEDIA_ROOT = os.path.join(BASE_DIR, "attachments")
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'staticfiles'), )

STATIC_URL = f"{FORCE_SCRIPT_NAME}/backend/static/"
MEDIA_URL = f"{FORCE_SCRIPT_NAME}/backend/attachments/"

Урлы:

urlpatterns = [
    path('admin/filebrowser/', site.urls),
    path("grappelli/", include("grappelli.urls")),
    path('admin/', admin.site.urls),
    path("api/", include(api_urlpatterns)),
    path('ckeditor/', include('ckeditor_uploader.urls')),
]

urlpatterns += static(settings.MEDIA_URL,
                      document_root=settings.MEDIA_ROOT,
                      show_indexes=settings.DEBUG)

urlpatterns += static(settings.STATIC_URL,
                      document_root=settings.STATIC_ROOT,
                      show_indexes=settings.DEBUG)

if settings.DEBUG:
    import debug_toolbar

    urlpatterns = [
        path("__debug__/", include(debug_toolbar.urls)),
    ] + urlpatterns

nginx:

  location /project_name/ {
    set $service project_name;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_pass http://$service;
    client_max_body_size 16m;
  }

В dev все работает, загрузка и просмотр, а в prod нет (AH00128: File does not exist: /var/www/html/project_name/ckeditor/upload). Я пробовал добавить alias/root в конфиг nginx, изменить путь к ckeditor на re_path(r'^ckeditor/', include('ckeditor_uploader.urls')) и все равно ничего( Не только загрузка, просмотр тоже не работает

Например, filebrowse работает, а ckeditor нет. Я не знаю, почему. enter image description here enter image description here

Добавьте в проекты apache настройки в service.conf -> WSGIScriptAliasMatch ckeditor alias:

WSGIScriptAliasMatch ^/${SERVICE}/((admin|api|grappelli|ckeditor)/.*)$ /${SERVICE}/backend/${PROJECT}/wsgi.py/$1

Теперь работает.

Вернуться на верх