首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用peterbe的django-static来同时提供静态和媒体服务?

如何使用peterbe的django-static来同时提供静态和媒体服务?
EN

Stack Overflow用户
提问于 2012-12-31 16:38:48
回答 1查看 66关注 0票数 0

注意:这不同于django-staticfiles文件,因为它有内置的压缩。

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

我是不是遗漏了什么?或者我必须在每个模板上手动设置{{ MEDIA_URL }}和{{ STATIC_URL }}?

此外,如何设置才能将django-static生成的符号链接上传到S3?

我使用的是Django 1.4,我当前的配置是:

代码语言:javascript
复制
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')]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-01 06:48:14

尽管我没有使用过这个应用程序,但在阅读了文档之后,我发现在定义图像资源属性的位置时,DJANGO_STATIC_MEDIA_URL似乎是一个最大限度地减少包含{{ MEDIA_URL }}的需要的捷径。

你定义媒体(www.mysite.com/ DJANGO_STATIC_MEDIA_URL ),然后你就可以访问上传媒体的位置,如下所示

代码语言:javascript
复制
<img src="{% staticfile "/foo.png" %}"/>

而不必将位置写成:

代码语言:javascript
复制
<img src="{{ MEDIA_URL }}{% staticfile "/foo.png" %}"/>

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14099409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档