Le code ci-dessous fait une erreur .. Comment pourrais-je résoudre ce problème ??
Merci d'avance :)
{% block header %}
<link rel="stylesheet" href="{% static 'shop/style.css' %}" />
{% endblock %}
La sortie d'erreur:
Non, ce n'est pas impossible. Essayez d'inclure {% load staticfiles%}
dans le même fichier html, plutôt que d'essayer de l'hériter de certains base.html
.
1.) Dans settings.py ajouter un tuple:
STATIFILES_DIR = (os.path.join (BASE_DIR, 'assets'),)
2.) Dans urls.py, ajoutez:
from Django.contrib.staticfiles.urls import staticfiles.urlpatterns
urlpatterns += staticfile_urlpatterns()
.) Dans le fichier html où vous placez le "link rel = 'stylesheet' ..", ajoutez simplement en haut:
{% load static from staticfiles %}
and then use :
<link rel="stylesheet" href="{% static 'assets/css' %}"
Ma solution est de include
une autre page avec {% load static %}
et script avec référence statique. {% block xxx %}
attend le premier {% yyy %}
ne pas être autre que {% include %}
et {% endblock %}
(les seuls cas que j'ai pu observer); donc quand on utilise "{% static 'xxx.js' %}"
il casse et se plaint. Mais inclure une autre page mettra Django dans le calme.
Par exemple, j'ai une page homepage
qui étend base.html
et contient des fichiers js statiques qui ne sont pas inclus dans base.html
.
base.html
{% block page %}
{% endblock %}
{% block script %}
{% endblock %}
homepage.html
:
{% extends 'base.html' %}
{% block page %}
...
{% endblock %}
{% block script %}
{% include 'home_js.html'%} <!-- don't use static links here because Django does not like it. -->
{% endblock %}
home_js.html
:
{% load static %}
<script src="{% static 'scripts/jquery.js' %}" ></script>
<script>
function ...
</script>
Maintenant, les scripts se chargent.
Donc, dans un bloc, nous ne pouvons pas utiliser {% %}
balises autres que {% block xxx %}
et {% endblock %}
.
J'utilise Django 5.1.
MODIFIER:
J'ai trouvé {% verbatim %}
tag pour être notre sauveur dans une telle situation.
Ajoutez simplement {% load static %}
en haut de votre modèle après le {% extends 'app/base.html' %}
.