settings.py403禁止:Nginx的在Django管理面板不服务静态
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
DEBUG = True
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'adminstatic')
mynginx.conf /etc/nginx/sites-enabled/mynginx.conf
你可以确信,我只有在启用了站点文件夹这个文件的conf
server {
listen *:80;
server_name _;
access_log /var/log/myapp.access.log;
error_log /var/log/myapp.error.log;
# Django media
location /static/ {
alias /root/proj/myapp/adminstatic/; #your Django project's static files - amend as required
}
# Finally, send all non-media requests to the Django server.
location/{
uwsgi_pass unix:/tmp/myapp.sock;
include /etc/nginx/uwsgi_params; # the uwsgi_params file you installed
}
}
此后我试着collectstatic命令 python manage.py collectstatic
它已成功收集管理静态文件夹中的所有静态。我crosscheked,有一个文件夹名为admin
在adminstatic文件夹中。并且此admin文件夹有3个名为css
,img
,js
的文件夹。
所有这些我在做生产机器。所以当我试图通过产品的ip访问本地浏览器上的django管理页面时,管理面板打开,但加载了任何css/js。我做了F12并在网络标签中看到。所有静力学都有禁止出现的错误。 PS:我正在使用uWsgi和nginx一起使用。
和往常一样,我已经看过几个SO线程和博客。但它并没有帮助我。
'myapp.error.log'显示什么? – dgel
即使你使用'chmod 777 -R adminstatic','/ root'的权限仍然不允许你访问这些文件 - 这就是为什么你不应该从'/ root'提供这些文件的原因。您可以通过尝试从机器上的另一个帐户读取'adminstatic'来测试。你会得到'权限被拒绝'。 – dgel
将'/ root'权限修改为'drwxr-xr-x'(通常不是一个好主意),或者将项目从'/ root'移出到'www-data'可以访问的文件夹中。 – dgel