【问题标题】:What happens to {{ STATIC_URL }} in deployment{{ STATIC_URL }} 在部署中会发生什么
【发布时间】:2012-05-28 19:05:41
【问题描述】:

简单的问题:

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

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

我会遇到问题还是 Django 仍会指向与 localhost 中相同的 STATIC_URL?。

我已经阅读了documentation,但我仍然不确定。

问候

【问题讨论】:

    标签: django deployment static


    【解决方案1】:

    您的过滤器将始终指向 settings.STATIC_URL 中定义的任何内容 - 故事结束。

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

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

    • /static/ on development 可能会被查找为 localhost/static/
    • /static/ 在生产 example.com 上,浏览器将尝试 example.com/static/

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

    【讨论】:

    • 哦,太好了。然后一切都将保持不变。使用 collectstatic 时,我是否需要更改过滤器以告诉它 STATIC_ROOT?。
    • @RobertSmith, STATIC_ROOT 与您的过滤器无关。它只是设置收集静态文件的位置。将您的 STATIC_URL 映射到您的 STATIC_ROOT 将取决于您的 Web 服务器(例如,apache 服务于来自 /static/ 的目录 /path-to-my-static-root/
    • 感谢您的澄清。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    相关资源
    最近更新 更多