Django脆表单不加载CSS

Posted

技术标签:

【中文标题】Django脆表单不加载CSS【英文标题】:Django crispy forms not loading CSS 【发布时间】:2013-07-01 12:40:29 【问题描述】:

我在 SO:Django crispy-forms cannot find CSS 上看到了这个问题,并遵循了已接受答案中的所有建议,即:

'crispy-forms' 列在 INSTALLED_APPS 下 我没有运行生产服务器,所以我不确定是否应用了 collectstatic 选项(尽管我确实运行了它)

另外:我正在尝试使用引导模板包,所以我将 CRISPY_TEMPLATE_PACK = 'bootstrap' 添加到我的 settings.py 文件中。

当我从 https://gist.github.com/maraujop/1838193 加载示例创建的表单时,页面上没有 CSS。有什么建议吗?谢谢!

编辑: 我想我仍然缺少一些东西。我下载了 Bootstrap,将其解压缩到我的应用程序内的静态目录中,即:

my_app/
    static/
        css/
        js/
        img/

我创建了一个base.html

% load staticfiles %
<!DOCTYPE html>
<html>
  <head>
    <title>Bootstrap 101 Template</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- Bootstrap -->
    <link href=" STATIC_URL css/bootstrap.min.css" rel="stylesheet" media="screen">
  </head>
  <body>
    <div id="content">
        % block content %% endblock %
    </div>
  </body>
</html>

在我的模板中,我有:

% extends 'base.html' %
% load crispy_forms_tags %
% block content %
   % crispy form %
% endblock %

当我尝试加载我的页面时,表单会加载(哇),但仍然没有 CSS。当我查看页面的来源时,我可以看到以下内容:

<link href="css/bootstrap.min.css" rel="stylesheet" media="screen">

但 Django 似乎找不到该文件。

【问题讨论】:

【参考方案1】:

您需要include the css/js yourself。所以...Download bootstrap,将文件放在您的静态文件目录中,在您的base.html 模板中包含一个指向引导 css/js 文件的链接,然后您将能够看到正确的格式。

【讨论】:

您能看看我上面的编辑吗?我试着按照你的建议去做,但还是有些不对劲。谢谢! @user2406467 您是否设置了正确的设置,STATIC_URL 和 STATICFILES_DIRS?我的猜测是,如果你设置了这些,你就会全部设置好。 STATIC_URL = '/static/' 和 STATICFILES_DIRS = ('/Users/me/bootstrap',) @user2406467 出了点问题,如果您的链接在输出时看起来像这样,则看起来 STATIC_URL 是空的。您的 TEMPLATE_CONTEXT_PROCESSORS 中有 "django.core.context_processors.static", 吗? 这似乎是缺失的部分。一旦我添加并重新加载,CSS 就会出现。非常感谢!

以上是关于Django脆表单不加载CSS的主要内容,如果未能解决你的问题,请参考以下文章

django 脆表单:在表单中嵌套表单集

Django脆形式的if语句,条件表单布局

为啥 Django 不加载我的 CSS?

在不重新加载页面的情况下更新 Django 中的表单值?

ASP.NET 不加载 CSS 文件

使用 Django 模型表单 + 表单向导 + Crispy - 不进行第二步