如何解决当使用 Django 存储在 Digital Ocean 上托管静态文件时,无法在管理中加载 django-ckeditor 字段
这在开发中在本地托管我的静态文件时有效。现在我托管在我的 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 文件夹,其中有许多其他脚本可以从同一位置成功加载。我检查了我的空间文件夹,这些文件确实存在相同的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。