【Django】staticタグをblockに入れるとTemplateSyntaxErrorが出るのを解決する
base.htmlを使って、共通部分をまとめようとした矢先、個別ページでだけ読み込みたいjsファイルを読み込もうとしたらエラー・・・
その解決策です。
事象
個別ページにてjsファイルを読み込む
{% block extra_js %} <script type="text/javascript" src="{% static 'app/js/test.js' %}"></script> {% endblock extra_js %}
すると・・・
シンタックスエラー!
エラー内容は、staticじゃなくてendblockを期待していますとのこと。僕はstaticを期待していますよ〜。
解決
もちろん先人がいました。
stackoverflow.com
という訳で、staticタグを使いたい場合は、個別ページ内で{% load staticfiles%}を読み込ませる必要があるとのこと。
{% extends "app/base.html" %} {% load staticfiles%}
1行目がextendsなので、2行目に追記します。
試しに1行目に{% load staticfiles%}入れてみたら、「1行目はextendsを書けや!」ってエラーが出たのでやめておきましょう。
これで無事シンタックスエラーが出ずに意図した動作をするようになりました。
はじめてのDjango2.0入門: PythonフレームワークDjango2.0とPaizaCloudを使って10分でWebサービスを作る
- 作者:吉岡恒夫
- 発売日: 2018/03/08
- メディア: Kindle版