【问题标题】:Static files are not fetching in django静态文件未在 django 中获取
【发布时间】:2020-06-19 13:03:07
【问题描述】:

我的设置说明。

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static/css')
]

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

另外,我已将静态文件添加到 urls.py urlpatterns += staticfiles_urlpatterns()

我的 HTML 模板

{% load static %}
<!DOCTYPE html>
<head>
    <meta charset="utf-8">
    <title>Things I eat</title>
</head>
<body>
    <h1> Hello world</h1>
</body>

findstatic 命令输出:

> python manage.py findstatic styles.css
Found 'styles.css' here:
  /project_name/static/css/styles.css

我用django == 3.0.7

我听从了类似问题的建议 [1,2,3] 但是我的静态文件在渲染时没有获取。 有什么调试建议吗?

编辑: 我的静态目录结构:

static
-- css
---- styles.css

【问题讨论】:

  • 你的 settings.py 中有 DEBUG=True 吗?
  • 是的,但切换 DEBUG=False 也无济于事

标签: javascript python css django


【解决方案1】:

我遇到了同样的问题并尝试了很多解决方案,但最后对我来说下面的方法有效,我希望它也对你有用

首先不需要添加STATICFILES_DIRSSTATIC_ROOT

settings.py

DEBUG = True

//make sure that django.contrib.staticfiles is present in your installed apps

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

//add this line at the end
STATIC_URL = '/static/'

似乎你已经加载了静态文件但没有添加任何 css 文件,为此在你的 html 页面标题中添加以下行

<link rel="stylesheet" type="text/css" href="{% static 'css/styles.css' %}">

【讨论】:

  • 谢谢!是的,我没有在页眉中添加任何 CSS 文件。
  • 但我的css路径似乎仍然存在一些问题。 "GET /static/css/styles.css HTTP/1.1" 404 1782
  • 顺便说一句,为什么 STATICFILES_DIRS 和 STATIC_ROOT 已经过时了?
  • 您的项目可能还会包含与特定应用无关的静态资产。除了在应用程序中使用 static/ 目录之外,您还可以在设置文件中定义目录列表(STATICFILES_DIRS),Django 也会在其中查找静态文件。参考 - docs.djangoproject.com/en/3.0/howto/static-files
  • 你有没有参考这个答案stackoverflow.com/a/24200094/8379852看看。如果仍然无法正常工作,请提供您的服务器终端的屏幕截图
【解决方案2】:

您是否包含样式表链接? &lt;link rel="stylesheet" type="text/css" href="{% static 'css/styles.css ' %}"&gt;

【讨论】:

    【解决方案3】:

    我总是单独给目录,以后再添加css文件夹。

    STATIC_URL = '/static/'
    STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
    

    然后在html文件中:

    <link rel="stylesheet" href="{% static 'css/addrecord.css' %}"> 
    

    了解更多信息。 https://docs.djangoproject.com/en/3.0/howto/static-files/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-14
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 2020-04-28
      • 2022-01-20
      相关资源
      最近更新 更多