【问题标题】:Django admin static files magically served神奇地提供了 Django 管理静态文件
【发布时间】:2021-10-21 13:57:43
【问题描述】:

我只是设置了一个简单的 Django 网站进行开发,并注释掉了

path('admin/', admin.site.urls),

在 settings.py 中使用STATIC_URL = '/static/'

当我执行python manage.py runserver 8100 并转到http://localhost:8100/static/admin/css/nav_sidebar.css 时,我看到了 这个静态文件被神奇地切断了。

到底发生了什么?我还没有在我的 urls.py 中设置静态 url 服务吗?我也没有像 NGINX 这样的静态服务器。

【问题讨论】:

    标签: python django django-urls django-staticfiles


    【解决方案1】:

    我认为静态文件是由例如提供的。 NGINX。一旦您执行 python manage.py collectstatic ,它们就会被放置到可以访问的位置,然后 Django 不再关心它们,因为它们由您的服务器处理。他们是外包的,可以这么说。它是处理它们的不同服务。因此,无论管理员 URL 是什么,/static 都将保持可访问性。您使用管理员 URL 打开和关闭的是 /admin 下的页面。

    http://localhost:8100/admin 
    

    不会再工作了,但是

    http://localhost:8100/static/admin 
    

    将保持不变。

    【讨论】:

    • 所以当我运行命令“python manage.py runserver 8100”时,它启动了另一个静态服务器?
    • 您正在使用开发服务器。没有其他服务没有。但是,在生产环境中,您可以将站点作为 wsgi 或 usgi 应用程序提供服务,并通过 NGINX 提供静态文件。在所有情况下,都会提供静态文件。
    • 对不起,但这并不能回答我原来的问题。
    • 您可以尝试从已安装的应用程序中删除“django.contrib.admin”。
    • 请说明您的原始问题。
    【解决方案2】:

    所以从https://docs.djangoproject.com/en/3.2/howto/static-files/ 开始,当你设置DEBUG=True 时,Django 会自动收集静态文件并通过 URL 为你提供静态文件。

    【讨论】:

      猜你喜欢
      • 2014-07-06
      • 2018-08-26
      • 2012-03-19
      • 2017-07-18
      • 1970-01-01
      • 2012-12-01
      • 2012-06-05
      • 1970-01-01
      • 2017-02-21
      相关资源
      最近更新 更多