【问题标题】:YouTube Plugin in CKEditor Django returns 404CKEditor Django 中的 YouTube 插件返回 404
【发布时间】:2018-06-25 13:23:29
【问题描述】:

我一直在尝试在 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 插件(这是我目前计划安装的唯一插件)。

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

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。

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

我错过了什么?

【问题讨论】:

  • 您的错误只是说找不到 /static/ckeditor/ckeditor/plugins/youtube/plugin.js。所以质疑它是否真的存在?可能不在讨论范围内,但 CKEditor 不需要用 Django Backend 实现,你可以用 html / js 将它添加到你的模板中。

标签: python django youtube ckeditor django-ckeditor


【解决方案1】:

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

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

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

/static/ckeditor/ckeditor/插件

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-09-26
      • 2020-07-23
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 2015-01-01
      相关资源
      最近更新 更多