1

我只在我的生产环境中遇到这个奇怪的错误。它在本地和分期工作正常。

我正在使用Django==1.10.5& 。我相信这个问题最近发生在我们从最新版本升级到最新版本时。django-blog-zinnia==0.18.1zinnia-wysiwyg-ckeditor==1.3Django==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

网址是/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 %}

4

0 回答 0