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;
}