1

我一直在尝试在 CKEditor 中为一个项目安装 YouTube 插件,但我失败了,我不知道为什么。

我已按以下方式配置了我的 settings.py (剥离了与此问题无关的代码:

CKEDITOR_CONFIGS = {
    'default': {
        'toolbar_Collective':[
            ['Source', '-', 'Bold', 'Italic'],

            # ...

            {
                'name': 'links',
                'items': ['Link', 'Unlink']
            },
            {
                'name': 'media',
                'items': ['ImageButton', 'Youtube']
            },

            # ...

            {'name': 'tools', 'items': ['Maximize']},
            ],
        'toolbar':'Collective',
        'width': '100%',
        'height': 400,
        'tabSpaces': 4,
        'extraPlugins': ','.join([
        ]),
    }
}

目前我已经将“extraPlugins”配置留空,因为只要我在那里写“youtube”:

'extraPlugins': ','.join([
  'youtube',
 ]),

CKEditor 失败,我的终端上显示以下内容:

[16/Jan/2018 18:31:16] "GET /post/new/ HTTP/1.1" 200 7239
[16/Jan/2018 18:31:16] "GET /static/ckeditor/ckeditor-init.js HTTP/1.1" 304 0
[16/Jan/2018 18:31:16] "GET /static/css/main.css HTTP/1.1" 304 0
[16/Jan/2018 18:31:16] "GET /static/ckeditor/ckeditor/ckeditor.js HTTP/1.1" 304 0
[16/Jan/2018 18:31:16] "GET /static/js/script.js HTTP/1.1" 304 0
[16/Jan/2018 18:31:16] "GET /static/ckeditor/ckeditor/plugins/youtube/plugin.js?t=H4PG HTTP/1.1" 404 1749
Performing system checks...

您可以看到还有其他错误代码,甚至关于页面 css。我不知道它们为什么在那里,但是无论进行任何编辑,它们都在那里,并且无论它们如何,编辑器都会起作用。真正的问题在于 YouTube 插件(这是我目前计划安装的唯一插件)。

我还尝试使用models.py文档中提到的 RichTextUploadingField 配置我的文件,并且我已经完成了以下操作:

class Post(models.Model):
    # ...
    text = RichTextField(
        config_name='default',
        extra_plugins=['youtube'],
        external_plugin_resources=[(
            'Youtube',
            '/static/ckeditor/ckeditor/plugins/youtube/',
            'plugin.js',
        )],
    )
    #...

这也没有结果。我在 forms.py 中也做了同样的事情,并且由于 settings.py 之外的这两个编辑都没有任何结果,我回到了我之前的配置,只编辑了 settings.py。

我进行了广泛的搜索,发现大多相互矛盾或不完整的信息。那,或者我不知道如何处理这些信息并且做错了一切。

我错过了什么?

4

2 回答 2

0

您是否已将插件文件夹复制到静态目录中?如果没有,请先从此链接下载“youtube”插件文件夹:

https://download.ckeditor.com/youtube/releases/youtube_2.1.14.zip

解压后粘贴到 django 项目的以下目录中

/静态/ckeditor/ckeditor/插件

现在尝试运行它,因为 ckeditor 正在寻找文件“plugin.js”以运行一些在您的情况下不可用的 GET 请求,这就是它显示 404 的原因

于 2020-10-26T05:25:32.127 回答
0

在开发环境中,static_root 不用于提供静态文件。因此,如果您想要开发 youtube 插件,那么您必须在 staticfiles_dir 文件夹中创建“ckeditor/ckeditor/plugins”文件夹结构并将 youtube 插件的提取文件夹粘贴到 plugins 文件夹中。

在生产中将使用 static_root 文件夹。

于 2020-12-30T12:29:06.977 回答