当使用 Django 存储在 Digital Ocean 上托管静态文件时,无法在管理中加载 django-ckeditor 字段

问题描述

admin - richtextfield

这在开发中在本地托管我的静态文件时有效。现在我托管在我的 Dokku 服务器上,静态和媒体文件存储在 DigitalOcean Spaces 中。

我在我的模型中使用 django-ckeditor 作为 RichTextfield

class Resume(models.Model):
headline = models.CharField(verbose_name='Headline',max_length=120)
about = RichTextField(verbose_name='About Me')
user = models.ForeignKey(get_user_model(),on_delete=models.PROTECT)
created_at = models.DateTimeField(auto_Now_add=True,verbose_name='Created At')
modified_at = models.DateTimeField(auto_Now=True,verbose_name='Modified At',null=True,blank=True)

在我的 settings.py 中,我想我已经定义了超过 Django 存储功能所需的内容。虽然不确定是否需要定义 AWS_QUERYSTRING_AUTH。两种方法都试过了,然后决定让我的存储桶对公众可读

AWS_ACCESS_KEY_ID = os.getenv('SPACES_ACCESS_KEY_ID')  # access key
AWS_SECRET_ACCESS_KEY = os.getenv('SPACES_SECRET_ACCESS_KEY')  # secret
AWS_STORAGE_BUCKET_NAME = os.getenv('SPACES_BUCKET_NAME')
AWS_S3_REGION_NAME = 'sfo3'
AWS_S3_ENDPOINT_URL = f'https://{AWS_S3_REGION_NAME}.digitaloceanspaces.com'
AWS_S3_OBJECT_ParaMETERS = {'CacheControl': 'max-age=86400'}
AWS_DEFAULT_ACL = 'public-read'
# s3 static settings
STATIC_LOCATION = 'static'
STATIC_URL = f'{AWS_S3_ENDPOINT_URL}/{STATIC_LOCATION}/'
STATICFILES_STORAGE = 'config.custom_storages.StaticStorage'
# s3 public media settings
PUBLIC_MEDIA_LOCATION = 'media'
MEDIA_URL = f'{AWS_S3_ENDPOINT_URL}/{PUBLIC_MEDIA_LOCATION}/'
DEFAULT_FILE_STORAGE = 'config.custom_storages.MediaStorage'
AWS_QUERYSTRING_AUTH = False  # ckeditor with AWS

在控制台中,我可以看到 2 个资源在管理页面上没有加载。

  • config.js
  • en.js

两者都来自 ckeditor/ckeditor 文件夹,其中有许多其他脚本可以从同一位置成功加载。我检查了我的空间文件夹,这些文件确实存在相同的内容

ckeditor folder on DO

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...