我怎样才能使用peterbe的django-static来同时提供静态和媒体服务?

时间:2012-12-31 08:38:48

标签: django django-static

注意:这与django-staticfiles不同,因为它内置了压缩。

My / static /用于我自己上传的静态文件,而/ media /用于用户上传的文件。但是,DJANGO_STATIC_MEDIA_URL依赖于所有静态文件都在一个URL下的事实。

我错过了什么吗?或者我是否必须在每个模板上手动设置{{MEDIA_URL}}和{{STATIC_URL}}?

另外,如何设置它以便django-static生成的符号链接上传到S3?

我正在使用Django 1.4,我目前的配置是:

DJANGO_STATIC = True
DJANGO_STATIC_MEDIA_URL = '//s3.amazonaws.com/%s/static/' % AWS_STORAGE_BUCKET_NAME
DJANGO_STATIC_MEDIA_ROOTS = [os.path.join(SITE_ROOT, 'static')]

1 个答案:

答案 0 :(得分:0)

虽然我没有使用过这个应用程序,但在阅读完文档之后,DJANGO_STATIC_MEDIA_URL似乎是一种快捷方式,可以在定义图像src属性的位置时最大限度地减少包含{{MEDIA_URL}}的需要。

您定义了DJANGO_STATIC_MEDIA_URL(www.mysite.com/media),之后您可以访问上传媒体的位置,如

<img src="{% staticfile "/foo.png" %}"/>

而不是必须将位置写为:

<img src="{{ MEDIA_URL }}{% staticfile "/foo.png" %}"/>

因此,要引用您的css和js静态文件,请继续使用{{STATIC_URL}}。要引用上传的媒体,请定义DJANGO_STATIC_MEDIA_URL并仅使用{%staticfile%}模板标签,或者像往常一样使用{{MEDIA_URL}}。