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

How to serve the Django static files using ShimmerCat?

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

这是 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 设置做一些小改动,但我知道如何处理。任何帮助或建议将不胜感激。提前致谢。

Django 管理页面是动态生成的。不幸的是,这意味着服务器无法可靠地了解这些页面上的资产,也无法使用 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文件夹中。