在不分离静态文件的情况下使用Django作为网站



我想把我的网站移到django,它有很多图像和css文件链接到它。它还使用应用程序缓存来缓存静态文件。由于我有其他应用程序在django上工作,我想把这个静态应用程序也移到django。那么,是否可以在不动态渲染静态文件的情况下运行网页,并仅将页面用作静态网页(相对于html的静态文件路径,而不使用django的静态文件夹)?如何做到这一点?

假设HTML也是静态的,您应该将所有内容(HTML和相关文件)移动到一个静态文件夹中(不需要分离HTML模板,因为它也是静态的),然后您可以使用web服务器将其映射到您想要的任何URL,例如,您可以将它们放在{{ STATIC_ROOT }}/my-page/中,并将example.com/my-page/映射到文件系统上的那个文件夹

运行collectstatic,Django会将静态文件复制/生成到文件系统上的STATIC_ROOT文件夹中https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#collectstatic

然后使用Apache或Nginx这样的web服务器直接为您的/my-page URL提供服务,而无需访问您的Django应用程序。(用STATIC_URL在Django中设置),而其他请求则转发到您的Django应用

因此,例如,你的Django应用程序将运行在127.0.0.1:8000上,而nginx运行在默认的HTTP/HTTPS端口上,并使用例如proxy_pass与你的Dyango应用程序对话以获取动态内容

http://wiki.nginx.org/HttpProxyModule

最新更新