ckeditor: Невозможно установить свойство 'dir' из неопределенного (django + zinnia)
Я испытываю эту странную ошибку только в моей производственной среде. Работает нормально локально и на постановке.
я использую Django==1.10.5
& django-blog-zinnia==0.18.1
с zinnia-wysiwyg-ckeditor==1.3
, Я считаю, что эта проблема произошла недавно, когда мы обновили Django==1.8
до последней.
Когда я пытаюсь создать запись в блоге, я не могу редактировать содержимое, потому что экземпляр ckeditor не загружается. Ошибки:
https://example.com/admin/zinnia/entry/81/change/config.js/change/ 404 (Not Found)
https://example.com/admin/zinnia/entry/81/change/lang/en.js/change/
GET https://example.com/admin/zinnia/entry/81/change/skins/moono-lisa/editor.css/change/
Uncaught TypeError: Cannot set property 'dir' of undefined
URL является /admin/zinnia/entry/81/change/
Так что это очень похоже на то, что ckeditor.js пытается загрузить дополнительные статические файлы на основе текущих URL-адресов и каким-то образом внедряет имена файлов в текущий URL-адрес.
Как обходной путь, я ssh-ed на сервер и манипулировал /static/ckeditor/ckeditor/ckeditor.8bd276b5ef4c.js
и добавил эту строку в самом верху:
window.CKEDITOR_BASEPATH = '/static/ckeditor/ckeditor/';
Это решает проблему. Большой вопрос: почему это происходит только на одной из моих машин, почему Django/ Zinnia не установлены CKEDITOR_BASEPATH
правильно само по себе?
Я публикую это здесь, потому что я не уверен, является ли это проблемой в Django, Zinnia или Zinnia-Ckeditor, если кто-то получил представление о том, кто виноват, я рад повторно опубликовать эту проблему на соответствующем трекере проблем на GitHub.
РЕДАКТИРОВАТЬ:
В качестве обходного пути, в моем проекте я создал файл templates/admin/change_form.html
:
{% extends "admin/change_form.html" %}
{% block extrahead %}
<script>window.CKEDITOR_BASEPATH = '/static/ckeditor/ckeditor/';</script>
{{ block.super }}
{% endblock %}