CMS. Интеграция Django CMS

Перед тем, как предпринимать какие-либо шаги создайте резервные копии файлов и базы данных. Плагин интеграции с CDN предназначен только для сайтов работающих по стандартным шаблонам CMS. Если вы вносили изменения в логику работы CMS, плагин может не cработать.

Сконфигурируйте файл urls.py для указания статических файлов в нужной директории (также как в директории media).

Было:

# This is only needed when using runserver.
if settings.DEBUG:
    urlpatterns = patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', # NOQA
            {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
        ) + staticfiles_urlpatterns() + urlpatterns # NOQA
    #urlpatterns = static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Стало:

# This is only needed when using runserver.
if settings.DEBUG:
    urlpatterns = patterns('',
        url(r'^static/(?P<path>.*)$', 'django.views.static.serve', # NOQA
            {'document_root': settings.STATIC_ROOT, 'show_indexes': True}),
        ) + urlpatterns # NOQA
    urlpatterns = patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', # NOQA
            {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
        ) + staticfiles_urlpatterns() + urlpatterns # NOQA
    #urlpatterns = static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

 Измените файл settings.py, чтобы Django использовал CDN.

Ищем следующие строки:

STATIC_URL and MEDIA_URL variables and modify them to reflect your CDN url or Zonealias similar to:
STATIC_URL = 'http://CNAME/static/'
MEDIA_URL = 'http:/CNAME/media/'

Вместо CNAME укажите CNAME-запись, которую задали в личном кабинете G-Core при создании ресурса. Проверьте работает ли ваш домен, прежде чем использовать ее для интеграции.

Теперь все файлы из директорий static или media будут отдаваться через CDN. Тем не менее, есть некоторые файлы, которые Django использует для работы самой CMS. Чтобы завершить интеграцию, необходимо переместить эти файлы в директорию STATIC_ROOT, определенную в файле settings.py. Для копирования этих файлов убедитесь, что все выполняется в виртуальном окружении из рутовой директории Django:

$ source env/bin/activate

После этого перейдите в директорию вашего приложения (сайта), где расположен файл manage.py, и выполните следующую команду:

$ python manage.py collectstatic

Теперь все внешние статические файлы будут перемещены в директорию STATIC_ROOT, содержимое которой отдается через CDN.

Используйте STATIC_URL в шаблонах, чтобы ссылки менялись на путь к директории со статикой, например:

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}test.css">

Интеграция с CDN завершена! Рекомендуем проверить html-код сайта, чтобы убедиться, что URL-адреса были верно изменены.

Для этого нажмите F12 или откройте «Инструменты разработчика», перейдите на вкладку Network, обновите страницу. В ссылках на статические файлы вы должны увидеть CNAME-запись из личного кабинета вместо вашего доменного имени.

Была ли статья полезна?
Недавно просмотренные статьи