Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python gunicorn不提供静态文件_Python_Django_Gunicorn - Fatal编程技术网

Python gunicorn不提供静态文件

Python gunicorn不提供静态文件,python,django,gunicorn,Python,Django,Gunicorn,我一直在努力从Ubuntu服务器上提供Django应用程序。我遵循了中的所有说明,但当我进入gunicorn_django-b0.0.0.0:8000步骤时,该站点突然停止提供静态文件。使用dev服务器python manage.py运行服务器0.0.0.0:8000,该站点运行良好 我没有更改任何库存设置。你知道为什么这不起作用吗 编辑: 在遵循教程的其余部分和的建议之后,我添加了一个 location /static { root /path/to/static/files; }

我一直在努力从Ubuntu服务器上提供Django应用程序。我遵循了中的所有说明,但当我进入
gunicorn_django-b0.0.0.0:8000
步骤时,该站点突然停止提供静态文件。使用dev服务器
python manage.py运行服务器0.0.0.0:8000
,该站点运行良好

我没有更改任何库存设置。你知道为什么这不起作用吗

编辑:

在遵循教程的其余部分和的建议之后,我添加了一个

location /static {
     root /path/to/static/files;
}

到我的nginx
站点可用
文件,一切似乎都正常

Gunicorn不是一个通用的web服务器,它所做的只是服务于一个应用程序(在本例中是django)。为了方便开发人员,django除了在开发中之外不提供静态文件,因为它不是提供静态文件的有效或必要的安全工具

如果您一直按照说明操作,系统将指示您设置在端口80上运行的nginx,该端口将1)将您的应用程序从端口8000代理到端口80,2)在同一端口上提供静态文件,并根据URL选择每个请求要执行的操作


静态文件不能在端口8000上工作并不是引起警报的原因——在这种配置下,一旦nginx配置正确,静态文件只能在端口80上工作。django还有其他可能的配置和其他服务静态文件的策略,尽管大多数配置都遵循推荐的约定,即完全独立于应用程序服务静态文件,如本例所示。

只是确认一下:您同时启动了nginx和gunicorn,然后将web浏览器指向本地主机上的端口80(不是端口8000),对吗?我根本没有运行nginx。当我运行
manage.py
命令时,当指向我的URL:8000时,我确实得到了我的完整站点。好的,我将提交一个答案以提供更好的详细信息。可能重复