我一直在尝试在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'作为soons:
'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。
我进行了广泛的搜索,我发现了大多数矛盾或不完整的信息。那,或者我不知道如何处理这些信息,并且做错了什么。
我错过了什么?
答案 0 :(得分:0)
您是否已将plugin文件夹复制到静态目录中? 如果没有,请先从此链接下载“ youtube”插件文件夹:
https://download.ckeditor.com/youtube/releases/youtube_2.1.14.zip
解压缩后,将其粘贴到django项目的以下目录中
/ static / ckeditor / ckeditor / plugins
现在尝试运行此操作,因为ckeditor正在查找文件“ plugin.js”,以便运行一些GET请求,在您的情况下该请求不可用,这就是显示404的原因
答案 1 :(得分:0)
在开发环境中,static_root 不用于提供静态文件。因此,如果您想开发 youtube 插件,那么在 staticfiles_dir 文件夹内,您必须创建“ckeditor/ckeditor/plugins”文件夹结构,并将 youtube 插件的提取文件夹粘贴到 plugins 文件夹内。
在生产中将使用 static_root 文件夹。