次のコードはエラーになります。どうすればこの問題を解決できますか?
前もって感謝します :)
{% block header %}
<link rel="stylesheet" href="{% static 'shop/style.css' %}" />
{% endblock %}
エラー出力:
いいえ、不可能ではありません。 {% load staticfiles%}
いくつかのbase.html
。
1。)settings.pyでタプルを追加:
STATIFILES_DIR =(os.path.join(BASE_DIR、 'assets')、)
2。)urls.pyに追加:
from Django.contrib.staticfiles.urls import staticfiles.urlpatterns
urlpatterns += staticfile_urlpatterns()
。) "link rel = 'stylesheet' .."を配置するhtmlファイルで、単に先頭に追加します:
{% load static from staticfiles %}
and then use :
<link rel="stylesheet" href="{% static 'assets/css' %}"
私の解決策は、include
別のページに{% load static %}
と静的参照のあるスクリプトを追加することです。 {% block xxx %}
は、最初の{% yyy %}
が{% include %}
および{% endblock %}
(私が観察した唯一のケース)以外であることを期待しています。したがって、"{% static 'xxx.js' %}"
を使用すると、エラーが発生し、問題が発生します。しかし、別のページを含めるとDjangoが落ち着きます。
例えば、base.html
を拡張するhomepage
ページがあり、base.html
に含まれていないいくつかの静的jsファイルがあります。
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>
これで、スクリプトがロードされます。
そのため、ブロックでは{% %}
および{% block xxx %}
以外の{% endblock %}
タグを使用できません。
私はDjango 5.1。
編集:
このような状況では、{% verbatim %}
タグが救世主であることがわかりました。
テンプレートの先頭に{% load static %}
を追加するだけですafter the {% extends 'app/base.html' %}
。