\r\n \r\n \r\n \r\n
\r\n
\r\n

\r\n Hello World!\r\n

\r\n
\r\n {% block content %}\r\n {% endblock content %}\r\n
\r\n \r\n\r\n```\r\n\r\n#hoge.html\r\n\r\n```python\r\n{% extends 'base.html' %}\r\n\r\n{% block content %}\r\n\r\n

\r\n Hello World!\r\n

\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n

Hello World!

\r\n
\r\n
\r\n
\r\n\r\n{% endblock content %}\r\n```\r\n\r\n#main.js\r\n\r\n```javascript\r\nwindow.onload = function() {\r\n var popup = document.getElementById('js-popup');\r\n if(!popup) return;\r\n popup.classList.add('is-show');\r\n\r\n var blackBg = document.getElementById('js-black-bg');\r\n var closeBtn = document.getElementById('js-close-btn');\r\n\r\n closePopUp(blackBg);\r\n closePopUp(closeBtn);\r\n\r\n function closePopUp(elem) {\r\n if(!elem) return;\r\n elem.addEventListener('click', function() {\r\n popup.classList.remove('is-show');\r\n })\r\n }\r\n}\r\n```\r\n\r\ncssはうまく読み込めているのですが、JavaScriptはうまく読み込めず、`hoge.html`の下にそのまま表示されてしまっています。\r\n\r\nよろしくお願いします。","answerCount":2,"upvoteCount":0,"datePublished":"2019-09-10T09:03:37.085Z","dateModified":"2019-09-10T09:03:37.085Z","acceptedAnswer":{"@type":"Answer","text":"base.html\r\n```html\r\n\r\n```\r\nstaticディレクトリ構造がわからないのではっきり言えませんが、\r\n```tree\r\nstatic\r\n├─img\r\n├─js\r\n ├─main.js\r\n```\r\n\r\nもし,上のような構造であれば以下のようなコードで読みこまれると思います。\r\n\r\n```html\r\n\r\n```","dateModified":"2019-09-13T07:31:39.616Z","datePublished":"2019-09-13T07:31:39.616Z","upvoteCount":1,"url":"https://teratail.com/questions/211178#reply-311989"},"suggestedAnswer":[{"@type":"Answer","text":"`extends`で`base.html`を継承しても、\r\n```HTML\r\n{% load static %}\r\n```する必要があります・","dateModified":"2020-06-22T04:53:30.958Z","datePublished":"2020-06-22T04:53:30.958Z","upvoteCount":0,"url":"https://teratail.com/questions/211178#reply-388179","comment":[]}],"breadcrumb":{"@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"トップ","url":"https://teratail.com"},{"@type":"ListItem","position":2,"name":"Djangoに関する質問","url":"https://teratail.com/tags/Django"},{"@type":"ListItem","position":3,"name":"Django","url":"https://teratail.com/tags/Django"}]}}}
質問するログイン新規登録
Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

5022閲覧

DjangoにJavaScriptを読み込む方法

退会済みユーザー

退会済みユーザー

総合スコア0

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/09/10 09:03

0

1

現在作成しているDjangoアプリにJavaScriptを読み込まさたいのですが、うまくいきません。

内容としては、JavaScriptで作成したModalを表示させたいのです。

Modalはこちらを参考にしてます。
https://tech-dig.jp/js-modal/

現在はこんな感じで実装してあります。

#base.html

python

1{% load static %} 2 3<!DOCTYPE html> 4<html lang="ja"> 5 <head> 6 <title>Django App</title> 7 <meta charset="utf-8"> 8 <script type="text/javascript" src="{% static 'main.js' %}"></script> 9 <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet"> 10 </head> 11 <body> 12 <main class="container"> 13 <div class="main"> 14 <h1> 15 Hello World! 16 </h1> 17 </div> 18 {% block content %} 19 {% endblock content %} 20 </main> 21 </body> 22</html>

#hoge.html

python

1{% extends 'base.html' %} 2 3{% block content %} 4 5<h1> 6 Hello World! 7</h1> 8 9<div class="popup" id="js-popup"> 10 <div class="popup-inner"> 11 <div class="close-btn" id="js-close-btn"> 12 <i class="fas fa-times"></i> 13 </div> 14 <h1>Hello World!</h1> 15 </div> 16 <div class="black-background" id="js-black-bg"></div> 17</div> 18 19{% endblock content %}

#main.js

javascript

1window.onload = function() { 2 var popup = document.getElementById('js-popup'); 3 if(!popup) return; 4 popup.classList.add('is-show'); 5 6 var blackBg = document.getElementById('js-black-bg'); 7 var closeBtn = document.getElementById('js-close-btn'); 8 9 closePopUp(blackBg); 10 closePopUp(closeBtn); 11 12 function closePopUp(elem) { 13 if(!elem) return; 14 elem.addEventListener('click', function() { 15 popup.classList.remove('is-show'); 16 }) 17 } 18}

cssはうまく読み込めているのですが、JavaScriptはうまく読み込めず、hoge.htmlの下にそのまま表示されてしまっています。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

base.html

html

1<script type="text/javascript" src="{% static 'main.js' %}"></script>

staticディレクトリ構造がわからないのではっきり言えませんが、

tree

1static 2├─img 3├─js 4 ├─main.js

もし,上のような構造であれば以下のようなコードで読みこまれると思います。

html

1<script type="text/javascript" src="{% static 'js/main.js' %}"></script>

投稿2019/09/13 07:31

SEI.__name

総合スコア67

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

extendsbase.htmlを継承しても、

HTML

1{% load static %} 2```する必要があります・

投稿2020/06/22 04:53

ForestSeo

総合スコア2724

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問