javascript - 样式不显示

标签 javascript django templates django-staticfiles

我对着陆样式有疑问。我不知道发生了什么,因为更早的工作。

网站使用的文件,我都在“静态”。 使用的文件,例如 django 管理面板 - 在“staticfiles”

我的settings.py文件,关于静态文件的部分:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.6/howto/static-files/

TEMPLATE_DIRS = (
     join (base_dir, 'templates'),
)

STATICFILES_DIRS = (
     join (base_dir, 'static')
)

STATIC_URL = '/static/'

STATIC_ROOT = (
     join (base_dir, 'staticfiles')
)

HTML 代码,base.html。这是我的主页:

<!DOCTYPE html>
<html>
<head>
    <title>Test site</title>
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/main.css">
</head>

<body>
    <div class="container">
    {% block nav %}
      <div class="header">
        <ul class="nav nav-pills pull-right">
          <li {% if request.path == '/' %} class="active" {% endif %}>
              <a href="/">Home</a>
          </li>
            {% if user.is_authenticated %}
          <li{% if request.path == '/elist/'%} class="active" {%endif%}>
              <a href="{% url 'emaillist' %}">E-mail list</a>
          </li>
            {% endif %}
          <li{% if request.path == '/contact/' %} class="active" {% endif %}>
              <a href="{% url 'contact1' %}">Contact</a>
          </li>
        </ul>
        <h3 class="text-muted"><a href="/">Name site</a></h3>
      </div>
    {% endblock %}

    {% block header %}
      <div class="jumbotron">
        <h1>Soon we go!</h1>
        <p class="lead">Landing page.</p>
      </div>
    {% endblock %}

    {% block content %}{% endblock %}

    {% block footer %}{% endblock %}

    </div>
  </body>
</html>

最佳答案

这看起来不太好:

STATIC_ROOT = (
     join (base_dir, 'staticfiles')
)

这个变量应该是一个字符串,而不是一个元组,像这样:

STATIC_ROOT = join(base_dir, 'staticfiles')

但我认为您可能想改为这样做:

STATICFILES_DIRS = (
    join(base_dir, 'staticfiles')
)

确保 base_dir 是绝对路径,并且 staticfiles/css/main.css 相对于它确实存在。

并且由于您使用的是 Django 1.6,因此最好使用 {% static 'css/main.css' %} 而不是 {{ STATIC_URL }}/css/main。 CSS。为此,您必须在文件的前面执行 {% load staticfiles %},最好靠近顶部。

documentation很好地解释了这些变量之间的区别。简而言之:

  • 在开发过程中,如果您在INSTALLED_APPS 中有django.contrib.staticfiles,那么Django 会在您的static 目录中发现静态文件应用程序并从那里提供服务。
  • 您可以使用 STATICFILES_DIRS 指定 Django 应在其中查找静态文件的其他目录。
  • DEBUG=False 时,
  • STATIC_ROOT 用于部署。这应该是文件系统中的一个绝对路径,一个由你的网络服务器使用的路径,比如 Apache(不是 Django 的内置开发服务器)。当您运行 python manage.py collectstatic 时,Django 将收集您项目中的所有静态文件并将它们复制到这个公共(public)位置。
  • STATIC_URL 是静态文件的基本 URL。通常为 /static/。在部署中,此 URL 不会由 Django 提供,而是由 Web 服务器从 STATIC_ROOT 的位置直接提供。

关于javascript - 样式不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22732309/

相关文章:

c++ - 接受方法参数中的任何类模板

javascript - Chrome 开发者控制台访问 jQuery 范围

javascript - thymeleaf javascript onload=location.href

python - Django修改密码问题,super(type, obj) : obj must be an instance or subtype of type

django - 如何为 Django 中的现有数据库生成模型?

c++ - 确定参数类型

javascript - AngularJS 绑定(bind)问题

javascript - Web Audio 解码音频数据 iOS 上的分块破折号音频

javascript - Django如何制作一个首先运行js函数然后在.py中运行的按钮

c++ - 为什么模板参数推导不起作用?