【问题标题】:Accessing static in django在 django 中访问静态
【发布时间】:2017-12-30 17:53:28
【问题描述】:

我在使用 django 对我的静态目录进行排序和通过 html 页面中的模板链接 css 文件时遇到问题。我不断收到错误“未找到:/CSS/bootstrap.min.css”

我知道我的目录在 settings.py 中的设置方式存在问题,但我似乎无法解决此问题。下面是我的 settings.py 和 layout.html 代码(我正在使用的页面调用 css 文件)。

layout.html

{% load staticfiles %}
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title>Testing {% block title %}{% endblock %}</title>
    <link href="{% static 'css/bootstrap.min.css' %}"  type="text/css" rel="stylesheet">
</head>
<body>


    <div class="container">
    {% block content %}

    {% endblock %}

    </div>

</body>
</html>

settings.py

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/


STATIC_URL = 'C:/Users/Luke/Desktop/Capstone/CapstoneNotespool/capstonenotespool/capstonenotespool/static/'

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

【问题讨论】:

  • 如果将STATIC_URL 更改为/static/ 会怎样?
  • 这样做可以消除“未找到”错误。现在的输出是“GET /static/css/bootstrap.min.css HTTP/1.1 404”。但是,页面上的测试字体没有改变/没有使用 css 文件中的格式。
  • 嗯...听起来更好。如果没有看到实际的项目目录,这有点难说。你能截取带有文件位置的树结构的屏幕截图吗?
  • 我已经用文件路径更新了帖子
  • 谢谢。看起来是对的。你跑./manage.py collectstatic了吗?不过,我的公司实际上将我们的静态文件夹保存在顶级目录中。所以你可能想尝试把它移到那里。

标签: python html css django static


【解决方案1】:

你快到了!您只需将正确的静态文件目录添加到您的 STATICFILES_DIRS。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# STATIC_URL tells django the url path to use for all static files. It 
# doesn't really have anything to do with your file locations on your 
# computer.
STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
    # Add this line here.
    os.path.join(BASE_DIR, "capstonenotespool", "static"),
]

【讨论】:

    【解决方案2】:

    我认为您必须再次检查您的静态网址,我认为您的配置有误。

    这里就是你要找的答案。

    Example of tree file

    这是我的配置

    STATIC_URL = '/static/'

    如果调试:

    MEDIA_URL = '/media/'

    STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static", >"static-only")

    MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static", >"media")

    STATICFILES_DIRS = ( os.path.join(os.path.dirname(BASE_DIR), "static", "static"),

    )

    【讨论】:

      猜你喜欢
      • 2021-08-14
      • 2017-12-23
      • 2013-11-22
      • 2021-05-20
      • 1970-01-01
      • 2013-10-01
      • 2020-11-26
      • 1970-01-01
      • 2012-09-30
      相关资源
      最近更新 更多