Django 将静态介质部署到与主环境分离的服务器

Django 将静态介质部署到与主环境分离的服务器,django,deployment,fabric,Django,Deployment,Fabric,我在对结构部署脚本进行某些更改时遇到问题。我们正在从使用容易损坏的NFS挂载来承载我们的静态媒体转变为使用一个单独的Web服务器来承载和处理我们的所有静态媒体 我们的目标是,无论我们正在部署什么环境(测试、生产等),upload\u static\u content命令都将仅在静态媒体服务器上运行。现在,如果我们运行fab-test-upload\u-static\u-content,一切都会很顺利。静态内容最终位于正确目录中的正确服务器上。但是,如果我们运行fad test deploy,静态

我在对结构部署脚本进行某些更改时遇到问题。我们正在从使用容易损坏的NFS挂载来承载我们的静态媒体转变为使用一个单独的Web服务器来承载和处理我们的所有静态媒体

我们的目标是,无论我们正在部署什么环境(测试、生产等),upload\u static\u content命令都将仅在静态媒体服务器上运行。现在,如果我们运行
fab-test-upload\u-static\u-content
,一切都会很顺利。静态内容最终位于正确目录中的正确服务器上。但是,如果我们运行
fad test deploy
,静态内容最终会出现在测试web服务器上,而不是预期的服务器上

def test():
    ...
    env.hosts=testhosts

def prod():
    ...
    env.hosts=prodhosts

def deploy():
    # Do some deployment stuff
    ...
    upload_static_content()
    ...

@hosts([static_server,])
@run_once
def upload_static_content()
    # Upload static content to a different server
    ...
您是否尝试过Fabric 1.3中引入的执行功能?它应该尊重@hosts装饰师

def deploy():
    # Do some deployment stuff
    ...
    execute(upload_static_content)
以下是文档:

您是否尝试过Fabric 1.3中引入的执行功能?它应该尊重@hosts装饰师

def deploy():
    # Do some deployment stuff
    ...
    execute(upload_static_content)
以下是文档:


是否应该是类似于
fab prod deploy
?不确定您的意思。对于测试环境(暂存)部署,我们将执行
fab-test-deploy
,对于生产环境部署,我们将执行
fab-prod-deploy
,如果它不是类似于
fab-prod-deploy
?不确定您的意思。对于测试环境(暂存)部署,我们将执行
fab test deploy
,对于生产环境部署,我们将执行
fab prod deploy
,就是这样,这是我们忽略的部分。我们以前不需要使用这种类型的功能。就是这样,这是我们忽略的部分。我们以前不需要使用这种类型的功能。