Nginx和Gunicorn与Virtualbox服务旧版的Django静态文件填充/裁剪为新文件大小,sendfile关闭不起作用

时间:2017-06-09 08:12:47

标签: nginx vagrant virtualbox gunicorn sendfile

我的问题与描述herehere的问题相同,但在 nginx.conf 中设置sendfile off;无效。< / p>

我正在使用Virtualbox(Ubuntu 16.04)和Nginx,Gunicorn和Django运行Vagrant。我使用此设置进行开发,因此我希望每次更改文件时都不必调用collectstatic。因此,Nginx将所有请求路由到Gunicorn(甚至是'/ static /'),Gunicorn使用这种方法提供静态文件:

if settings.DEBUG:
    from django.contrib.staticfiles.urls import staticfiles_urlpatterns
    urlpatterns += staticfiles_urlpatterns()

这是有效的,但如果我在静态文件中更改某些内容,则不会更新内容,只会更新文件大小。我尝试在 nginx.conf 中设置sendfile off;,也在我的Gunicorn配置中设置。不过,问题仍然存在。有什么方法可以尝试缩小这个问题的可能原因吗?

所有Django文件都在与Windows 10主机系统共享的文件夹中,但如果我使用vagrant ssh并检出文件,则它们已正确更新。

编辑:如果我只在没有Nginx的情况下运行Gunicorn,问题仍然存在,所以它似乎是一个Gunicorn / Django问题。

1 个答案:

答案 0 :(得分:0)

想出来。

我也需要用--no-sendfile标志来运行Gunicorn。我尝试在我的ini文件中设置它(no_sendfile = True)之前没有用。但是,在主管的Gunicorn run命令中添加--no-sendfile工作了!