为什么找不到 Django 管理页面和其他页面的 CSS 文件和图像?

问题描述 投票:0回答:1

即使在正确的文件路径中搜索,GET 方法也会在控制台中返回 404。

编辑:我发现另一篇文章说我应该在 settings.py 文件中打开调试。它成功了!现在尝试将其转回 False 后,它仍然按预期工作。所以第二个问题是为什么第一次尝试不起作用?

我确保settings.py文件中的静态路径是正确的,但问题似乎出在django本身,因为django管理页面也不显示CSS。 我尝试了 python manage.pycollectstatic 但它不起作用 我尝试多次重新启动服务器,但仍然

另一个编辑:我刚刚发现一些页面在调试设置为 True 时加载了图像和 CSS 文件。但我没有加载的页面,也没有加载他们的页面。再次将 DEBUG 设置为 True 并加载页面后,当 DEBUG 回到 False 时,它们现在都可以工作。 认为这可能有助于弄清楚为什么当 DEBUG 设置为 False 时它不起作用

python django backend webserver
1个回答
0
投票

编辑:我发现另一篇文章说我应该在 settings.py 文件中打开调试。它成功了!现在尝试将其转回 False 后,它仍然按预期工作。所以第二个问题是为什么第一次尝试不起作用?

由于缓存,它可以继续工作。如果您使用 Ctrl + F5 清除缓存,它将再次无法处理静态文件。

我确保 settings.py 文件中的静态路径是正确的,但问题似乎出在 django 本身,因为 django 管理页面也不显示 CSS。我尝试了 python manage.pycollectstatic 但它不起作用我尝试多次重新启动服务器但仍然如此。

collectstatic
 [Django-doc]不能解决这个问题。
collectstatic
只是将所有应用程序的
static/
目录复制到由
STATIC_ROOT
设置[Django-doc]
指定的通用静态目录,但它不会 服务 文件。

Django 在生产中提供静态文件,这没有多大意义:这不会有效。通常,您让 NginxApache 或其他 Web 服务器首先处理请求。

对于 Nginx,它看起来像:

server {
    listen 80;
    server_name server_domain_or_IP;

    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /parent/directory/of/static;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/gunicorn.sock;
    }
}

所以 Nginx 提供文件服务,而不是 Django。

© www.soinside.com 2019 - 2024. All rights reserved.