python - 403 禁止 : Nginx not serving statics in Django Admin panel

标签 python css django nginx django-admin

设置.py

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 管理.py 收集静态 它已成功收集 adminstatic 文件夹中的所有静态信息。我交叉检查,adminstatic 文件夹中有一个名为 admin 的文件夹。这个管理文件夹有 3 个名为 cssimgjs 的文件夹。

所有这些都是我在生产机器上做的。因此,当我尝试通过生产 IP 访问本地浏览器上的 django 管理页面时,管理面板会打开,但会加载任何 css/js。我按 F12 并在网络选项卡中查看。所有静态数据均存在禁止错误。

PS:我将 uWsgi 与 nginx 一起使用。

和往常一样,我已经看过一些 SO 主题和博客。但这对我没有帮助。

最佳答案

nginx Web 进程用户(通常是 www-data)可能没有 /root/proj/myapp/adminstatic/ 的读取权限。我想如果您检查 myapp.error.log 您会看到权限被拒绝的消息。

您需要将元素移动到 nginx 进程有权读取的文件夹中(您确实不应该从 /root 提供这些内容),或者您可以 chown/chmod /root/proj/myapp/adminstatic/ 适本地授予对 www-data 的访问权限。

关于python - 403 禁止 : Nginx not serving statics in Django Admin panel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23834368/

相关文章:

python - 是否可以在 R shiny 中运行 python 脚本

python - 用 Pandas .replace 替换列数据不起作用

css - Firefox 3.0 CSS 投影

javascript - 如何: Show a colored portion of an otherwise uncolored background in a div or behind and img?

html - 我无法让我的 fa 图标向左对齐到我的 h3 标题

python - Heroku for Django 应用程序的条件 pip 安装要求

python - Django 第一个应用程序来自 .导入 View 问题

python - mfcc特征大小如何影响递归神经网络

javascript - 如何使用单个脚本函数分别更改多个产品的价格?

python - 音乐分析与可视化