如何使用ShimmerCat提供Django静态文件?

时间:2015-12-29 14:36:20

标签: django http2 shimmercat

我一直在测试HTTP2服务器ShimmerCat,我已经在其上设置了反向代理以使用Django。到目前为止,这一切都像一个魅力,但我有一个疑问。现在我正在使用Django在开发中为它们提供服务的方法提供Django静态文件,这意味着我已经离开了设置DEBUG=True,但我们都知道它不是一个好的生产实践。有没有办法可以用Django本身提供ShimmerCat静态文件?

这是ShimmerCat配置文件:

devlove.yaml

    ---
    shimmercat-devlove:
        domains:
            www.mysite.com:
                root-dir: site
                consultant: 8000
                cache-key: xxxxxxxxxxx
            api.mysite.com:
                port: 8000

我可以使用subdomain例如static.mysite.com来执行此操作吗?下面的配置可以是一个很好的解决方案吗?

devlove.yaml

    ---
    shimmercat-devlove:
        domains:
            www.mysite.com:
                root-dir: site
                consultant: 8000
                cache-key: xxxxxxxxxxx
            static.mysite.com:
                root-dir: site/django-app/static
                consultant: 8000
                cache-key: yyyyyyyyyyy
            api.mysite.com:
                port: 8000

当然我需要对Django设置做一些小改动,但我知道如何处理它。任何帮助或建议将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:2)

Django Admin页面是动态生成的。不幸的是,这意味着服务器无法可靠地了解这些页面上的资产,并且无法使用HTTP / 2 PUSH自动提供资源。但electric domains与普通静态域一样有效。所以你的第二个选择原则上是正确的。

但是,对于HTTP / 2,使用Cookie的成本应该足够低(HPACK压缩应该折叠它们),而您不需要使用wwwstatic域。你最好只拥有其中一个域名,比如www

---
shimmercat-devlove:
    domains:
        www.mysite.com:
            root-dir: site
            consultant: 8000
            cache-key: xxxxxxxxxxx
        api.mysite.com:
            port: 8000

这只是你的第一个例子!但是您需要将Django的静态资源复制到site文件夹。