【问题标题】:Webpage not finding style sheet网页找不到样式表
【发布时间】:2012-06-17 13:54:50
【问题描述】:

由于某些超出我的原因,我的 html 页面没有找到我的样式表。如果有帮助的话,我正在使用 Django 框架。我目前正在本地主机上运行它。

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>

 <link rel="stylesheet" href="../fitness/templates/masterpage.css"  type="text/css">

</head>
<body>
<h1> MasterPage</h1>



{% block content %} {% endblock %} 
</body>
</html>

masterpage.css

h1 {
color: #fff;

}

谢谢各位。

【问题讨论】:

  • Firebug 或 Google 的开发人员工具对正在加载的 CSS 文件的确切路径有何看法? (在“网络”标签中)
  • 萤火虫找到了我认为的正确路径(localhost:8000/fitness/templates/),但是它说里面没有规则。
  • 你能不能点击 URL 看看实际的样式表是否出现?
  • 为什么你的 CSS 在模板目录中?

标签: python html css django


【解决方案1】:

为了提供静态文件,比如 CSS,django 有 staticfiles 库:

https://docs.djangoproject.com/en/dev/howto/static-files/ - 开发版 https://docs.djangoproject.com/en/1.4/howto/static-files/ - Django 1.4
https://docs.djangoproject.com/en/1.3/howto/static-files/ - Django 1.3

请注意,这需要最新版本的 Django,因为它是最近添加的

我的猜测是 CSS 的 URL 与您的 urls.py 中的模式不匹配,因此返回错误

【讨论】:

    【解决方案2】:

    根据 css 链接,您的路径可能是:

    [同根]/fitness/templates

    [same root]/[maybe else?]/current(具有 显示的html)

    看到你对 Chris 的评论(回答)我建议你将 css 链接更改为:

    /fitness/templates/masterpage.css

    并确保对应的物理路径下有masterpage.css

    【讨论】:

      【解决方案3】:

      此处的简短答案:在您的 settings.py 中,确保您为 STATIC_DIRS 设置了一个文件夹,即一个 STATIC_URL(通常只是“/static/”)。设置 myproject/static/ 的 STATIC_ROOT 设置。将此文件夹留空。在 STATIC_DIRS 下添加一个文件夹,命名为 myprojet/assets/。然后在 assets/ 中有 css、img 和 js。现在,您可以通过此位置访问这些组织文件夹中的所有资产,无论其位于哪个文件夹。 {{ STATIC_URL }}/main.css {{ STATIC_URL }}/banner.png 作为最后的手段,运行 python manage.py collectstatic at你的 shell,并确保在你的 settings.py 中你有取消注释 Django 的静态文件处理程序。 (默认情况下它们是未注释的。)

      Django 最佳实践长答案继续阅读(根据我有限的经验)。

      自从他们引入了 STATIC_DIRS { } 设置后,我一直将 myproject/static/ 目录留空。 (在部署期间,有必要在您的服务器上运行 python manage.py collectstatic 命令以收集站点包中的所有管理文件以及您的静态服务器将提供的其他内容。因此,将其留空,以免发生混乱稍后在那里。为您的“资产”使用不同的文件夹。)

      我有一个名为 src 的目录,许多人在项目级别也将其称为媒体。带有 manage.py 的 Django 1.4 项目级别而不是您的 settings.py。我将 myproject/src/ 添加到 STATIC_DIRS 设置中。它是一个应该包含字符串的元组。在 src/ 目录中,我有 js、img、css。您可能决定创建的所有 STATIC_DIRS 最酷的事情是它们都可以通过

      访问
      <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/main.css" />
      

      注意:即使您的 css 文件目录结构可能是多个嵌套文件夹,或者在本例中为 myproject/src/css/main.css ,您也可以这样做。 Django 不关心你的目录结构。一般来说,Django 与其元素的耦合非常松散。例如,很容易插入您选择的另一种 Pythonic 模板语言。就像设置 STATIC_URL 和 STATIC_DIRS 很容易一样,Django 知道在哪里查找,并且从 /static/ 为它们提供服务。

      【讨论】:

        猜你喜欢
        • 2016-02-14
        • 2011-10-01
        • 2020-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-24
        • 1970-01-01
        相关资源
        最近更新 更多