所以我正在构建一个简单的博客来跟踪我的项目 . 我决定使用CKeditor作为wysiwyg编辑器 . 除了它的图像部分之外,我能够完成所有工作 . 当我点击“图像浏览”时,我无法在服务器中查看图像,每当我上传图像时,它都会上传,但我无法查看 . 它弹出一个红色的'X' .
链接到显示正在发生的事情的屏幕截图:http://imgur.com/a/ODk8p
下面是我将CKEditor添加到已安装的应用程序中的代码我的项目的settings.py
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'projects',
'ckeditor',
)
稍后在我的项目的settings.py中我有CKEditor的设置:
MEDIA_ROOT = os.environ.get('MEDIA_ROOT',os.path.join(BASE_DIR, 'media'))
MEDIA_URL = '/media/'
CKEDITOR_UPLOAD_PATH = "uploads/"
CKEDITOR_UPLOAD_SLUGIFY_FILENAME = False
CKEDITOR_RESTRICT_BY_USER = True
CKEDITOR_JQUERY_URL = 'http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'
CKEDITOR_CONFIGS = {
'default': {
'removePlugins': 'stylesheetparser',
'toolbar': 'Full',
'height': 500,
'width': 900,
},
}
这是我的项目的models.py(现在看起来非常简单):
from django.db import models
from ckeditor.fields import RichTextField
class Project(models.Model):
title = models.CharField(max_length=300)
banner = models.ImageField(upload_to='banners/')
body = RichTextField(config_name='default')
version = models.CharField(max_length=140)
def __str__():
return self.title
我也有这一行在我的项目的urls.py中添加CKEditor url:
url(r'^ckeditor/', include('ckeditor.urls')),
有什么想法可能是错的吗?除了图像,一切都有效 . 任何帮助都非常感谢
3 回答
如果这是在DEBUG / runserver模式下,你是否记得添加
到你的
urls.py
您缺少ckeditor图像后端
每当我处理用户文件和图像上传时,10次中有9次问题是由于“CKEDITOR_UPLOAD_PATH”文件夹上的权限错误造成的 .
红色X可能是一个后备图像,以防出现问题,例如将上传保存到磁盘 .