Django-ckeditor 和 django-pipeline

Django-ckeditor and django-pipeline

我对 django-ckeditor 有疑问,我将它与 django-pipeline 一起使用,在本地 运行 时一切正常,但如果 DEBUG=False ckeditor.js用的是压缩包,失败了。

这是我在加载管理员以呈现使用 django-ckeditor

的字段时从 chrome 中的开发人员工具得到的问题
ckeditor.8e9749424093.js:245 
   Uncaught TypeError: Cannot set property 'dir' of undefined
        at Object.d (ckeditor.8e9749424093.js:245)
        at f (ckeditor.8e9749424093.js:246)
        at Array.C (ckeditor.8e9749424093.js:246)
        at w (ckeditor.8e9749424093.js:246)
        at ckeditor.8e9749424093.js:247```

文件存在并已加载,但出了点问题,似乎是管道压缩破坏了它。

我已经 google 这个问题,我找到的唯一建议来自文档。我还将这段代码添加到模板中,以确保测试所有可能的解决方案,但没有任何改变。

{% extends "admin/base_site.html" %}
   {% block extrahead %}
   <script>window.CKEDITOR_BASEPATH = '/static/ckeditor/ckeditor/' </script>
   {{ block.super }}
   {% endblock %}

有什么建议吗?

如此处所述,您走在正确的轨道上:https://github.com/django-ckeditor/django-ckeditor/blob/master/README.rst#id2

您需要在 Django 模板中以正确的顺序放置 JS 资源。

以下为我解决了这个问题:

{% block extrahead %}
    {{ block.super }}

    {# CKEditor needs to know where its assets are located #}
    <script>window.CKEDITOR_BASEPATH = '/static/ckeditor/ckeditor/';</script>

    <script type="text/javascript" src="{% static "ckeditor/ckeditor-init.js" %}"></script>
    <script type="text/javascript" src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script>
{% endblock %}