Django Ckeditor图像浏览器找不到图像
Posted
技术标签:
【中文标题】Django Ckeditor图像浏览器找不到图像【英文标题】:Django Ckeditor image browser not finding images 【发布时间】:2014-11-24 12:33:15 【问题描述】:所以我正在构建一个简单的博客来跟踪我的项目。我决定使用 CKeditor 作为所见即所得的编辑器。除了图像部分之外,我能够让所有这些工作。当我点击“图像浏览”时,我无法查看服务器中的图像,并且每当我上传图像时,它确实会上传但我无法查看它。它弹出一个红色的“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')),
任何想法可能是错误的?除图像外,一切正常。 任何帮助都非常感谢
【问题讨论】:
从你的截图来看,你使用的是github.com/shaunsephton/django-ckeditor。如果是这样,您使用的是什么版本? 【参考方案1】:您缺少 ckeditor 图像后端
CKEDITOR_IMAGE_BACKEND = "pillow"
【讨论】:
谢谢!我会试试看!【参考方案2】:每当我处理用户文件和图片上传时,10 次中有 9 次出现问题是由于“CKEDITOR_UPLOAD_PATH”文件夹的权限不正确。
红色 X 可能是备用图像,以防出现问题,例如将上传文件保存到磁盘。
【讨论】:
【参考方案3】:如果这是在DEBUG/runserver模式,你记得添加
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
if settings.DEBUG:
urlpatterns += patterns(
'',
url(
r'^media/(?P<path>.*)$',
'django.views.static.serve',
'document_root': settings.MEDIA_ROOT,
),
)
urlpatterns += staticfiles_urlpatterns()
致您的urls.py
【讨论】:
什么是patterns
?那是一个未定义的变量,不是吗?有人可以修复缩进吗?我不确定最后一行是否应该在if
子句中。
如您所见,答案来自 2014 年。patterns
在 Django 1.8 中已弃用。早期版本的 Django 在 urls.py
中将 from django.conf.urls import patterns, url
作为默认导入。
知道了——有人可以更新答案吗?我无法让它工作。【参考方案4】:
自从我将图像存储在 AWS 上后,我遇到了完全相同的问题
我通过在settings.py
中添加这一行来解决它:
AWS_QUERYSTRING_AUTH = False
【讨论】:
我已经有了那条线,但问题仍然存在。有什么建议吗?【参考方案5】:从 django.conf 导入设置 from django.views.static 导入服务
if settings.DEBUG:
urlpatterns += [
url(r'^media/(?P<path>.*)$', serve,
'document_root': settings.MEDIA_ROOT
),
]
【讨论】:
以上是关于Django Ckeditor图像浏览器找不到图像的主要内容,如果未能解决你的问题,请参考以下文章
使用 Django CkEditor 时如何解决“缺少图像源 URL”问题