首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用django-cumulus为静态文件提供服务?

如何使用django-cumulus为静态文件提供服务?
EN

Stack Overflow用户
提问于 2012-11-09 20:06:26
回答 1查看 859关注 0票数 5

我正在尝试使用django-cumulus为Rackspace CloudFiles上的文件提供服务。我目前只在我的本地开发服务器上使用Django 1.4.2来尝试它。

我可以使用cumulus的syncstatic管理命令成功地上传我所有的静态资源,但我似乎无法在我的站点上使用相同的设置显示它们。

如果我的相关设置是:

代码语言:javascript
复制
STATIC_URL = '/static/'
CUMULUS = {
    'USERNAME': 'myusername',
    'API_KEY': 'myapikey',
    'CONTAINER': 'mycontainername',
    'STATIC_CONTAINER': 'mycontainername',
}
DEFAULT_FILE_STORAGE = 'cumulus.storage.CloudFilesStorage'
STATICFILES_STORAGE = 'cumulus.storage.CloudFilesStaticStorage'

然后,当我运行syncstatic时,我所有应用程序的静态文件都会像我预期的那样上传到/mycontainername/static/中。但是,当我在admin中加载一个页面时,它会忽略STATIC_URL,并尝试从像http://uniquekey....r82.cf2.rackcdn.com/path/to/file.css这样的URL而不是http://uniquekey....r82.cf2.rackcdn.com/static/path/to/file.css提供资源。

此外,我不明白如何让我的公共(非管理)页面使用CloudFiles上的静态文件,而不是从本地/static/目录提供它们。

我是否错过了一些关键的设置,或者我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2012-11-20 17:55:54

我也有同样的问题。我所做的就是

git克隆https://github.com/richleland/django-cumulus.git

编辑context_processors.py

代码语言:javascript
复制
from django.conf import settings

from cumulus.storage import CloudFilesStorage

def cdn_url(request):
    """
    A context processor to expose the full cdn url in templates.

    """
    cloudfiles_storage = CloudFilesStorage()
    static_url = '/'
    container_url = cloudfiles_storage._get_container_url()
    cdn_url = container_url + static_url

    print {'CDN_URL': cdn_url}

    return {'CDN_URL': cdn_url}

完成后,使用sudo python setup.py install安装它。

请注意,来自姜戈积云的context_processors.py实际上相当慢。

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

https://stackoverflow.com/questions/13307781

复制
相关文章

相似问题

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