我正在使用digitalocean.com spaces为Django应用存储静态文件。我根据他们的tutorial(与AWS相同的设置)成功设置了它。我现在想将CDN放在静态文件的前面。 KeyCDN有一个document描述了如何执行此操作,但建议在模板而不是{{STATIC_URL}}
templatetag中使用{% static %}
。
Django管理员使用{% static %}
模板标签而不是{{ STATIC_URL}}
。在某些情况下,没有什么区别,但是,如果您定义STATICFILES_STORAGE
(根据将静态文件存储在digitalocean.com spaces中的要求),则模板标签{% static %}
会忽略您在settings.py中明确声明的内容STATIC_URL
。
我有:
STATICFILES_STORAGE='storages.backends.s3boto3.S3Boto3Storage'
S3Boto3Storage
将模板标签{% static %}
设置为指向https://ams3.digitalocean.com/bucket_name/path/to/static/
,而与{{ STATIC_URL }}
的设置无关。
在STATIC_URL=
中将settings.py
手动设置为KeyCDN suggests:
STATIC_URL = 'http://keycdndjango-1c6b.kxcdn.com/static/'
对模板标签{% static %}
返回的内容没有影响。
所以我无法弄清楚如何使KeyCDN在此设置下工作。
感谢您的帮助!
答案 0 :(得分:0)
好吧,我不知道是否是这种情况,但是我正在使用Digital Ocean CDN并将AWS_S3_ADDRESSING_STYLE设置为“虚拟”进行了更改
来自
https://ams3.digitalocean.com/bucket_name/path/to/static/
到
https://bucket_name.ams3.digitalocean.com/path/to/static/