CSS работает только в одном из трех шаблонов при расширении из того же шаблона

#django #django-templates

#django #django-templates

Вопрос:

Хорошо, у меня есть мой базовый шаблон, и я расширил его в трех других шаблонах, и он работает только в одном из них. Я нахожу это действительно странным. Я не уверен, какой код будет уместен здесь, поэтому, пожалуйста, прокомментируйте, какой код я должен опубликовать.

База:

 <link rel="stylesheet" type="text/css" href="static/default.css" media="screen"/>
<title>{% block title %}Marijus Merkevicius{% endblock %}</title>
<div class="holder">{% block content %}{% endblock %}
  

индекс (css работает для этого шаблона):

 {% extends "base.html" %}
{% block title %}Marijus Merkevicius{% endblock %}
{% block content %}
    {% for entry in entries %}
        <h1><a href="{{ entry.category.slug }}/{{ entry.slug }}/"</h1>
        <p>{{ entry.text|safe|escape }}</p>
    {% endfor %}

{% endblock %}
  

подробно (css не работает):

 {% extends "base.html" %}
{% block title %}{{ entry.title }} | Marijus Merkevicius{% endblock %}
{% block content %}
    <h1>{{ entry.title }}</h1>
    <p>{{ entry.text|safe|escape }}</p>
{% endblock %}
  

Комментарии:

1. Покажите базовый шаблон и шаблон, в котором он работает, и шаблон, в котором он не работает. Однако не публикуйте все целиком — сведите это к минимальному примеру, в котором есть проблема.

2. Может быть, либо добавить css, либо быть очень конкретным в том, что вы подразумеваете под «не работает»?

Ответ №1:

<link rel="stylesheet" type="text/css" href="static/default.css" media="screen"/>

Вы используете относительную ссылку. Это означает, что в зависимости от того, по какому URL отображается эта страница, URL для вашего CSS тоже меняется.

Поскольку вы используете шаблон индекса и шаблон сведений, я предполагаю, что у обоих разные корневые URL (типичным шаблоном является то, что страница сведений является «подкаталогом» индекса).

Вместо этого укажите непосредственно на ваш файл css: /static/default.css если ваш файл css находится в example.com/static/default.css