KeyCDN和DO空间:设置了STATICFILES_STORAGE时,Django {%static%}与{{STATIC_URL}}

时间:2018-08-12 22:38:46

标签: django cdn digital-ocean static-files

我正在使用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在此设置下工作。

感谢您的帮助!

1 个答案:

答案 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/