javascript - Django 运行从父级导入并由子级调用的 javascript 函数

标签 javascript django inheritance

我在 static 下的外部文件夹中有一个 javascript 文件。我的index.html 没有运行从base.html 导入的javascript 函数。

文件路径:

-- project
   -- app
      -- templates
         -- app name
            -- index.html
   -- src
   -- static
      -- hello_world.js
   -- templates
      -- base.html

从浏览器查看页面源

<!DOCTYPE HTML> 
<html>

  <head>
    <style>
      body {
        margin: 0px;
        padding: 0px;
      }
    </style>

    <script type='text/javascript' src="/static/hello_world.js"></script>
  </head> 

  <body>

<div id="navigation">
<table border=0 cellpadding=7>
<tr>
    <td><a href="/game">Home</a></td>

      <td><a href="/game/registration">Register</a></td>
      <td><a href="/game/login">Login</a></td>

</tr>
</table>
</div>


<div id="content">

    <h2> Welcome to WAM's board 2 player board games! </h2>
    <canvas onload="entryPoint();" id="myCanvas" width="578" height="200"></canvas>

</div>
</body>
</html>

Base.html

{% block doctype %}<!DOCTYPE HTML> {% endblock %}
<html>
{% block head %}
  <head>
    <style>
      body {
        margin: 0px;
        padding: 0px;
      }
    </style>
{% load staticfiles %}
    <script type='text/javascript' src="{% static "hello_world.js" %}"></script>
  </head> 
{% endblock %}
  <body>
{% block navbar %}
<div id="navigation">
<table border=0 cellpadding=7>
<tr>
    <td><a href="/game">Home</a></td>
{% if user_logged_in %}
      <td><a href="/game/upload">Upload</a></td>
      <td><a href="/game/challenge_user">Challenge User</a></td>
      <td><a href="/game/logout">Logout</a> of {{ user_name }}</td>
{% else %}
      <td><a href="/game/registration">Register</a></td>
      <td><a href="/game/login">Login</a></td>
{% endif %}
</tr>
</table>
</div>

{% endblock %}
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>

index.html

{% extends "base.html" %}
{% block navbar %}{{ block.super }}{% endblock %}
{% block content %}
    <h2> Welcome to WAM's board 2 player board games! </h2>
    <canvas onload="entryPoint();" id="myCanvas" width="578" height="200"></canvas>
{% endblock %}

最佳答案

放这个

import os

BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # already present in newest django versions
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)

在你的settings.py中,或者简单地将静态文件放在应用程序文件夹内的静态文件夹中

关于javascript - Django 运行从父级导入并由子级调用的 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28882791/

相关文章:

python - QueryDict 列表未修改

c++ - 从函数 C++ 正确传递指针

javascript - 单击 Vuetify 按钮时如何重新加载页面?

javascript - 我可以用一个名称传递多个复选框值吗?

python - 如何在 LXLE 上使用 Apache 和 mod_wsgi 为 Django 应用程序提供服务

android - 如何访问我的 127.0.0.1 :8000 from android tablet

Swift - 继承协议(protocol)和将 Self 约束到协议(protocol)之间的区别

c# - 确保调用基类的静态构造函数的最佳方法是什么?

javascript - 导航栏中包含页面内容

javascript - 无法使用 Watir 从特定网页抓取数据