我一直在测试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
设置做一些小改动,但我知道如何处理它。任何帮助或建议将不胜感激。提前谢谢。
答案 0 :(得分:2)
Django Admin页面是动态生成的。不幸的是,这意味着服务器无法可靠地了解这些页面上的资产,并且无法使用HTTP / 2 PUSH自动提供资源。但electric domains与普通静态域一样有效。所以你的第二个选择原则上是正确的。
但是,对于HTTP / 2,使用Cookie的成本应该足够低(HPACK压缩应该折叠它们),而您不需要使用www
和static
域。你最好只拥有其中一个域名,比如www
:
---
shimmercat-devlove:
domains:
www.mysite.com:
root-dir: site
consultant: 8000
cache-key: xxxxxxxxxxx
api.mysite.com:
port: 8000
这只是你的第一个例子!但是您需要将Django的静态资源复制到site
文件夹。