【问题标题】:Problem applying css in Django with static-files app在 Django 中使用静态文件应用程序应用 css 的问题
【发布时间】:2011-07-20 18:33:43
【问题描述】:

我正在使用 Django,但我的 style.css 无法正常工作。每次我加载我正在处理的页面时,都没有应用 css。我也在终端“GET /css/style.css HTTP/1.1”404 2239

我的 style.css 位于 .../Templates/site_media/static/css

我的 INSTALLED_APPS 中也有 djago.contrib.staticfiles

我的 settings.py 中有这个

STATIC_URL = '/static/'


STATICFILES_DIRS = "/Templates/site_media/",

这是我在模板中加载 css 的内容

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

【问题讨论】:

  • 当您查看 HTML 时,href 显示的是什么? STATIC_URL 变量是否传递给模板?
  • 传递给模板的 STATIC_URL 变量是什么意思?我使用了

标签: css django static-files


【解决方案1】:

我的 style.css 位于 .../模板/site_media/static/css

不匹配

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

您需要将链接设置为:

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

编辑为 STATICFILES_DIRS 使用绝对路径(感谢 Yuji):

settings.py:

import os
SITE_ROOT = os.path.dirname(os.path.realpath(__file__))

STATIC_URL = '/static/'
STATICFILES_DIRS = ((os.path.join(SITE_ROOT,'Templates/site-media'),)

确保您的:

TEMPLATE_CONTEXT_PROCESSORS 拥有'django.core.context_processors.static',

【讨论】:

  • 另外,STATICFILES_DIRS 必须是列表或元组,并且它们必须是绝对路径。我假设.../Templates 不是/Templates
  • 好点,虽然我认为尾随逗号会 tuplize(?) 它。
  • 我将我的 settings.py 更改为 kriegar 建议的建议,但它仍然不起作用。我现在在终端中通过“GET /static/css/style.css HTTP/1.1” 404 1730
  • 检查您的 css 文件是否被托管...在您的浏览器中输入 http://&lt;site&gt;/static/static/css/style.css 如果您不想要多余的静态文件,您应该将您的 STATICFILES_DIR 更改为 ((os.path.join(SITE_ROOT,'Templates/site-media/static'),) 和您的 css 文件然后应托管在/static/css/style.css。但是,根据上面的 cmets,您的 {{ STATIC_URL }} 似乎没有到达模板。
猜你喜欢
  • 2013-07-29
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 2020-12-05
  • 2011-06-01
  • 1970-01-01
相关资源
最近更新 更多