我正在使用 digitalocean.com 空格来存储我的 Django 应用程序的静态文件。我根据他们的教程(与AWS相同的设置(成功设置了它。我现在想在静态文件前面放一个 CDN。KeyCDN有一个描述如何执行此操作的文档,但建议在模板中使用{{STATIC_URL}}
而不是{% static %}
模板标记。
Django 管理员使用{% static %}
模板标签而不是{{ STATIC_URL}}
。在某些情况下没有区别,但是,如果您定义STATICFILES_STORAGE
,就像将静态文件存储在 digitalocean.com 空间中一样,模板标签{% static %}
忽略您在 settings.py 中明确声明的任何内容STATIC_URL
。
我有:
STATICFILES_STORAGE='storages.backends.s3boto3.S3Boto3Storage'
S3Boto3Storage
将模板标记{% static %}
设置为指向https://ams3.digitalocean.com/bucket_name/path/to/static/
,而不考虑{{ STATIC_URL }}
的设置。
按照KeyCDN的建议在settings.py
中手动设置STATIC_URL=
:
STATIC_URL = 'http://keycdndjango-1c6b.kxcdn.com/static/'
对模板标记{% static %}
返回的内容没有影响。
所以我无法弄清楚如何使 KeyCDN 与此设置一起使用。
任何帮助不胜感激!
好吧,我不知道是否是这种情况,但我正在使用数字海洋CDN并将AWS_S3_ADDRESSING_STYLE设置为"虚拟"进行了更改
从
https://ams3.digitalocean.com/bucket_name/path/to/static/
自
https://bucket_name.ams3.digitalocean.com/path/to/static/