Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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 Django应用程序&x2B;nginx无法为静态文件提供服务器_Python_Django_Nginx_Static - Fatal编程技术网

Python Django应用程序&x2B;nginx无法为静态文件提供服务器

Python Django应用程序&x2B;nginx无法为静态文件提供服务器,python,django,nginx,static,Python,Django,Nginx,Static,我有一个非常不寻常的问题,没有一个静态文件被加载404被抛出。注意,我使用的生产环境设置了DEBUG=False,因此静态文件完全由nginx服务器提供服务 设置/production.py nginx/sites enabled/myapp myapp.log 请注意,在本例中,我的静态根/home/apps/myapp/static和应用程序静态文件grappelli/stylesheets/mueller/grid/output.css之间缺少/ 有人知道为什么会发生这种情况以及如何解决吗

我有一个非常不寻常的问题,没有一个静态文件被加载
404
被抛出。注意,我使用的生产环境设置了
DEBUG=False
,因此静态文件完全由
nginx
服务器提供服务

设置/production.py

nginx/sites enabled/myapp

myapp.log

请注意,在本例中,我的静态根
/home/apps/myapp/static
和应用程序静态文件
grappelli/stylesheets/mueller/grid/output.css
之间缺少
/

有人知道为什么会发生这种情况以及如何解决吗

更新(解决方案)


好的,问题是默认情况下,
Django的
静态文件来自
www.myapp.com/static/
文件夹,因此没有理由在
nginx
配置文件中指定
/static/
文件夹。因此,如果其他人也有同样的问题,只需从
nginx/sites enabled/myapp
文件中删除以下部分:

location /static/ { # STATIC_URL
        alias /home/apps/myapp/static/; # STATIC_ROOT
            expires 30d;
        }
        location /media/ { # MEDIA_URL
            alias /home/apps/myapp/media/; # MEDIA_ROOT
            expires 30d;
        }
location /static/ { # STATIC_URL
        alias /home/apps/myapp/static/; # STATIC_ROOT
            expires 30d;
        }
        location /media/ { # MEDIA_URL
            alias /home/apps/myapp/media/; # MEDIA_ROOT
            expires 30d;
        }

您是否在服务器上运行了python manage.py collectstatic


确保文件位于静态根目录。

好的,问题是默认情况下,
Django的
静态文件是从
www.myapp.com/static/
文件夹提供的,因此没有理由在
nginx
配置文件中指定
/static/
文件夹。因此,如果其他人也有同样的问题,只需从
nginx/sites enabled/myapp
文件中删除以下部分:

location /static/ { # STATIC_URL
        alias /home/apps/myapp/static/; # STATIC_ROOT
            expires 30d;
        }
        location /media/ { # MEDIA_URL
            alias /home/apps/myapp/media/; # MEDIA_ROOT
            expires 30d;
        }
location /static/ { # STATIC_URL
        alias /home/apps/myapp/static/; # STATIC_ROOT
            expires 30d;
        }
        location /media/ { # MEDIA_URL
            alias /home/apps/myapp/media/; # MEDIA_ROOT
            expires 30d;
        }

只是想澄清一下-myapp.log是Nginx日志文件吗?是的,它是
Nginx
log文件。不管你怎么想,我都会发布一个带有解决方案的更新。
location /static/ { # STATIC_URL
        alias /home/apps/myapp/static/; # STATIC_ROOT
            expires 30d;
        }
        location /media/ { # MEDIA_URL
            alias /home/apps/myapp/media/; # MEDIA_ROOT
            expires 30d;
        }