【问题标题】:Django - CKeditor dynamic image size based on client deviceDjango - 基于客户端设备的 CKeditor 动态图像大小
【发布时间】:2025-12-07 23:40:01
【问题描述】:

我正在尝试开发一个博客风格的网站,我使用 Django 作为 Web 框架,使用 CKeditor 作为 wygiwys,使用 Filer 进行文件管理(通过 django-ckeditor-filebrowser-filer 与 CKeditor 链接)。
一切正常,但问题是我无法控制帖子中使用的图像的图像大小,我想根据用户的设备(移动设备更小,桌面设备更大等)提供它们。
我不知道该怎么做,有什么想法吗?谢谢

编辑:
一个想法是:CKeditor 制作 html 块,然后将其与文件管理器图像 src 一起发送到客户端(如 'media/uploads/46813413/12'),然后再次从服务器拦截对文件管理器媒体的请求并发送根据发出请求的设备调整大小的图像。但是是否可以管理文件管理器请求?

【问题讨论】:

  • 嗨,Davide,到目前为止,您在控制图像尺寸方面做了哪些尝试?你有任何可以分享的代码吗?
  • 嗨!现在我只是为客户提供完整尺寸的图像。对于不在帖子内容中的图像,我使用easy_thumbnail,但它不能在帖子内容中使用,因为CKeditor返回一串html代码。我正在考虑“拦截”用户对文件管理器资源的请求,然后给客户端一个自定义大小的图像,但我不知道如何实现它(如果可能的话)

标签: django ckeditor django-imagekit django-ckeditor django-filer


【解决方案1】:

这可以在 settings.py 文件中进行配置。指定width & height as 100%,如下所示,

CKEDITOR_CONFIGS = {
    'default': {
        'height': '100%',
        'width': '100%',
    },
}

如果你想增加或减少高度,可以使用'height': '200'

你可以用ckeditor做更多的配置,参考official documentation

【讨论】: