2012-05-28 46 views
0

简单问题:部署中{{STATIC_URL}}会发生什么

部署中的{{ STATIC_URL }}变量会发生什么变化?例如,如果我使用的过滤器是这样的:

@register.filter 
def new_filter(g): 
    from myapp import settings 
    STATIC_URL = settings.STATIC_URL 
    return STATIC_URL + 'dir/' + g 

我要去有问题或Django将仍然指向同一STATIC_URL因为它是在本地主机?

我已阅读documentation但我仍然不确定这一点。

问候

回答

2

您的过滤器将始终指向无论是在settings.STATIC_URL定义 - 故事的结尾。

如果更改生产设置,您的过滤器现在将指向您的新STATIC_URL。如果你不这样做,它不会。

如果您的STATIC_URL是相对URL,则您的URL将自动解析为主机。

  • 发展/static/可能抬头为localhost /静态/
  • /static/生产example.com,浏览器将example.com/static/尝试

如果它是绝对的,那么井生产或开发浏览器将读取相同的资源,直到您更改STATIC_URL

+0

哦,太好了。然后一切都会保持不变。当使用collectstatic时,我是否需要更改我的过滤器来告诉它关于STATIC_ROOT ?. –

+0

@RobertSmith,'STATIC_ROOT'与你的过滤器无关。它只是设置收集静态文件的位置。这将取决于你的Web服务器将你的'STATIC_URL'映射到'STATIC_ROOT'(例如,从'/ static /'目录服务'/ path-to-my-static-root /'目录的Apache) –

+0

感谢您的澄清。 –