【问题标题】:one of the pages doesnt inherit the css form the base其中一个页面没有从基础继承 CSS
【发布时间】:2011-04-12 02:12:24
【问题描述】:

嘿,我正在使用 django 模板。下面是来自基本 html 文件的 sn-p,我调用了 css 链接

<link rel="stylesheet" type="text/css" href="static/css/layout.css"/>

但最奇怪的事情发生了。

{% extends "Layout.html" %}

所有的 html 页面都继承自基本的 html 文件,但是有一个页面没有继承 css 样式,而其他页面则可以完美运行。谁能想到一个可能的答案?先感谢您。

【问题讨论】:

  • 缩小范围。首先,暂时从有问题的页面中删除所有 HTML,除了没有获取样式的 HTML 片段。其次,注释掉 child 页面上的所有 CSS。现在,您应该不会再看到问题了。所以开始一一评论,直到找到问题为止。
  • 此页面是否在子路径上...例如:http://example.com/sub-category/page-with-no-css/ 并且所有其他工作都基于“/”?如果是这样,那么您的 href 标记应在路径中以“/”开头。还可以查看 STATIC_URL 和 MEDIA_URL 的上下文处理器。
  • 查看页面的来源,看看css是否链接。如果是,请点击链接并确保加载了正确的文件。

标签: html css django


【解决方案1】:

不要对 css 路径进行硬编码,如果您使用的是 Django 1.3 staticfiles 应用程序,请在 settings.py 中设置以下内容:

STATIC_URL = '/static/'

在您的模板中:

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

我假设 css/layout.css 存在于您的某个应用的 static 文件夹中。

【讨论】:

  • 天啊!有用!但是怎么没用,以前是(“static/css/layout.css”),现在是(/static/css/layout.css),我猜原因是我要映射的url是user/userexample 而其他人是 /user 谢谢
【解决方案2】:

这是一个可能的原因。这个:

href="static/css/layout.css"

相对于当前页面。因此,如果适用于此 URL:

http://mysite.com/page

那么它会失败:

http://mysite.com/subdirectory/deeper

您需要在 href 前面加上 /(或网站的基本 URL)。

【讨论】:

  • 我尝试添加/,但似乎不起作用...谢谢
猜你喜欢
  • 1970-01-01
  • 2011-04-24
  • 1970-01-01
  • 1970-01-01
  • 2011-06-30
  • 1970-01-01
  • 2010-10-21
  • 2014-11-20
  • 1970-01-01
相关资源
最近更新 更多