5

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

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

如果我的相关设置是:

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并尝试从 URL 提供资产,http://uniquekey....r82.cf2.rackcdn.com/path/to/file.css而不是http://uniquekey....r82.cf2.rackcdn.com/static/path/to/file.css.

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

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

4

1 回答 1

0

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

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

编辑 context_processors.py

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 安装它

请注意,来自 django cumulus 的 context_processors.py 实际上很慢

于 2012-11-20T09:55:53.550 回答