【问题标题】:Django: my css static path does not existDjango:我的 css 静态路径不存在
【发布时间】:2018-05-21 23:17:15
【问题描述】:

我的链接是这样的:

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

这很好,因为它得到了我想要的路径,即 href="/static/css/background.css"。我使用 {% load static}。我的 INSTALLED_APPS 中有 django.contrib.staticfiles。这是关于我的 settings.py 的一些更相关的信息:

STATIC_URL = '/static/'

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

但我很确定这也是正确的。我的问题是我的本地服务器找不到 static/css/background.css 。我知道这一点,因为http://localhost:8000/static/css/background.css 给了我一个 404 错误。我不知道为什么会这样,因为这是我的项目文件路径:

项目

  Project

  src

  static

     css
       background.css

【问题讨论】:

  • 我很困惑:你想要static/css/background.css 还是static/background.css?一个在css 子文件夹中,另一个不在。您的问题似乎混淆了它们......
  • @Ralf 我的错,这是一个错字。解决它。 static/css/background.css 是我想要的文件路径和我得到的。只是服务器在那里找不到任何东西。
  • 您的整个 URL 还应包括子文件夹,例如:http://localhost:8000/static/css/background.css。这是否也会产生 404 错误?
  • @Ralf 是的,我的错,我认为这是推断出来的。

标签: python css django


【解决方案1】:

您是否设置了您的网址路径?这是官方 Django 文档中的一个 sn-p。

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

【讨论】:

  • 我认为如果您将调试设置为 TRUE,您可以使用STATIC_FILE_ROOT="/my/path/to/static" ...但请确保先运行collectstatic(或类似的东西)
  • @h3k 我认为如果我们正确设置了 settings.py,我们就不需要这样做。我认为设置中的 STATIC_URL 和 django.contrib.staticfiles 会涵盖这一点。
  • @h3k 我会将其放入哪个 urls.py 中?我的应用程序中的那个还是我的一般项目中的那个?
  • @TalhaAhmed 你必须使用通用项目 urls.py
【解决方案2】:

我解决了我的问题,我发布这个以防万一这可以帮助其他人。我的问题是我的应用程序外部有我的静态文件夹。事实证明,我的网站针对的是我的应用程序,因此当 django 正在寻找静态文件夹时,它正在我的应用程序中寻找它。因此,请尝试将您的静态文件放入您的应用中,看看是否有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 2019-09-30
    • 2013-01-20
    • 2014-05-26
    • 2020-12-15
    • 2014-05-19
    • 1970-01-01
    相关资源
    最近更新 更多