Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
Django nginx+的问题;gunicorn解析静态内容_Django_Nginx_Askbot - Fatal编程技术网

Django nginx+的问题;gunicorn解析静态内容

Django nginx+的问题;gunicorn解析静态内容,django,nginx,askbot,Django,Nginx,Askbot,我正在用django应用程序(askbot开源项目)、gunicorn和nginx建立一个环境。在不同的docker容器中使用nginx和gunicorn 这是我的nginx配置 server { listen 80; location /static { alias /askbot/static; } location /m { alias /askbot/static; }

我正在用django应用程序(askbot开源项目)、gunicorn和nginx建立一个环境。在不同的docker容器中使用nginx和gunicorn

这是我的nginx配置

server {
       listen 80;

       location /static {
         alias /askbot/static;
       }

       location /m {
         alias /askbot/static;
       }

       location / {
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_pass http://askbot:8080/;
       }
     }
如果我在调试模式下运行django应用程序,一切都正常,我可以通过nginx查看nginx如何仅为动态内容调用gunicorn,静态内容在本地解析

但是,当我使用debug false运行django应用程序时,nginx不会旋转静态内容,如果我看到网页的源代码,我可以看到静态内容的所有路径都已更改,使用诸如“/m/CACHE…”之类的符号。我想这就是nginx无法解析静态内容的原因

例如,当使用debug mode等于true时,这是html源代码的一个片段

<link rel="stylesheet" href="/m/CACHE/css/9275d0e5b87f.css" type="text/css" /> <link href="//fonts.googleapis.com/css?family=Open+Sans+Condensed:700&amp;subset=latin-ext" rel="stylesheet" type="text/css" /> <link href="//fonts.googleapis.com/css?family=Open+Sans+Condensed:700&amp;subset=cyrillic-ext" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="/m/default/media/jslib/modernizr.custom.js?v=1"></script> <script type="text/javascript">

当使用debug equals false运行时,相同的片段如下所示

<link href="/m/default/media/style/style.css?v=1" rel="stylesheet" type="text/css" /> <link href="/m/default/media/fa-4.3.0/css/font-awesome.css?v=1" rel="stylesheet" type="text/css" /> <link href="/m/default/media/bootstrap/css/bootstrap.css?v=1" rel="stylesheet" type="text/css" /> <link href="//fonts.googleapis.com/css?family=Open+Sans+Condensed:700&amp;subset=latin-ext" rel="stylesheet" type="text/css" /> <link href="//fonts.googleapis.com/css?family=Open+Sans+Condensed:700&amp;subset=cyrillic-ext" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="/m/default/media/jslib/modernizr.custom.js?v=1"></script> <script type="text/javascript">

我已经讨论这个问题两天了,有人能解释一下为什么会发生这种情况,以及如何修复吗?以不同的方式配置nginx,或者禁用django来实现这种行为

提前感谢,,
Esteban Collado

好的,我解决了我的问题

这是由settings.py文件中包含的压缩程序应用程序引起的

INSTALLED_APPS = (
...
    'compressor'
...
)
我部署的django应用程序需要该应用程序,因此我所做的是禁用添加到同一文件的压缩

   COMPRESS_ENABLED = False
现在,我没有看到我在问题中描述的行为,所有静态字段都添加到URL中的缓存文件夹中

比尔,
Esteban Collado

你看过吗?运行python manage.py collectstaticHi@JamesBirkett是的,我看过了。无论如何,我能够解决我的问题,问题是压缩机应用程序负责我的行为,我禁用了压缩添加到settings.py文件COMPRESS_ENABLED=False。