2012-05-28 84 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

感謝您的澄清。 –