【问题标题】:Why css for admin url in python-django project is not loading?为什么 python-django 项目中管理 url 的 css 没有加载?
【发布时间】:2017-09-28 03:31:00
【问题描述】:

我是 python 和 django 的新手。我已经学习了两者的基本知识,并制作了一个名为 PythonDjangoDemo 的简单项目。我在开发过程中访问了管理员网址。但我无法在 python-django 项目中为管理 url 加载 css。首先让我们看一下项目结构。我有 -

PythonDjangoDemo
  |--- PythonDjangoDemo
  |      |--- __init__.py
  |      |--- settings.py
  |      |--- urls.py
  |      |--- wsgi.py
  |--- static_cdn
  |      |--- admin
  |      |      |--- css
  |      |      |      |---base.css
  |      |      |      |---login.css
  |      |      |--- fonts
  |      |      |--- img
  |      |      |--- js
  |--- media_cdn
  |--- templates
  |--- manage.py
  |--- db.sqlite3

我们来看看settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

... ... ...

STATIC_URL = '/static/'
MEDIA_URL = "/media/"

STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_cdn")
MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "media_cdn")

我已将所有用于管理 url 的 css 放在“static_cdn/admin/css”中。当我尝试访问“127.0.0.1:800/admin”时,我没有收到任何错误。这是控制台输出 -

[30/Apr/2017 16:04:58] "GET /admin/ HTTP/1.1" 302 0
[30/Apr/2017 16:04:59] "GET /admin/login/?next=/admin/ HTTP/1.1" 200 1650
[30/Apr/2017 16:04:59] "GET /static/admin/css/base.css HTTP/1.1" 200 16066
[30/Apr/2017 16:04:59] "GET /static/admin/css/login.css HTTP/1.1" 200 1203
Not Found: /favicon.ico
[30/Apr/2017 16:04:59] "GET /favicon.ico HTTP/1.1" 404 2329

请解释一下

  • 与控制台响应相比出了什么问题(即没有错误)?
  • STATIC_URLSTATIC_ROOT分别是什么意思?

【问题讨论】:

  • 这是DEBUG = TrueFalse
  • 你也跑了collectstatic
  • DEBUG = True 我也跑collectstatic @Grimmy
  • @Grimmy,看看——我把css文件放在/static_cdn/admin/css/base.css。但是控制台输出是 --/static/admin/css/base.css。是static 还是static_cdn
  • @Grimmy ,在浏览器中也没有检测到错误[在 chrome 和 firefox 中检查]。但他们正在展示 --- Resource interpreted as Stylesheet but transferred with MIME type application/x-css: "http://localhost:8000/static/admin/css/base.css". Resource interpreted as Stylesheet but transferred with MIME type application/x-css: "http://localhost:8000/static/admin/css/login.css".

标签: python css django static admin


【解决方案1】:

您的 css 加载正常,您可以看到没有错误。

查看this了解详情。

此外,您的媒体文件夹应与静态文件夹处于同一级别。

【讨论】:

    【解决方案2】:

    您应该将 static_cdn 文件夹与 media_cdn 文件夹并行放置。

    然后清除缓存并加载管理页面。

    【讨论】:

    • 那些(static_cdn & media_cdn)是并行的。 @Rahul Gupta
    【解决方案3】:

    是的,我找到了问题的解决方案。虽然一切正常,但浏览器的控制台显示 -

    Resource interpreted as Stylesheet but transferred with MIME type application/x-css: "http://localhost:8000/static/admin/css/base.css". 
    Resource interpreted as Stylesheet but transferred with MIME type application/x-css: "http://localhost:8000/static/admin/css/login.css".
    

    这个问题在python built in server not loading css讨论过。

    我在CSS not loading wrong MIME type Django 得到了解决方案。

    【讨论】:

      【解决方案4】:
      STATIC_URL = '/static/'
      
      STATIC_ROOT =  os.path.join(BASE_DIR, "static", "static")
      
      STATICFILES_DIRS = (
          os.path.join(BASE_DIR, "static", "static-only"),
      

      我把我的静态文件放在上面,并在我的 Django 基本目录中创建它。 之后我跑了django manage.py collectstatic。 然后运行django manage.py runserver,但它仍然没有工作。 直到我清除了我的浏览器缓存。

      【讨论】:

      • 导入并添加所示的 mimetypes
      猜你喜欢
      • 2021-01-27
      • 2011-05-24
      • 2020-03-09
      • 2020-10-07
      • 2017-05-08
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多