繁体   English   中英

Javascript在Django模板中不起作用

[英]Javascript doesn't work in django template

我有一个模板,该模板继承自javascript中的基本模板。

这是基本模板:

{% load static %}
<!DOCTYPE html>
<html lang="en">

  <head>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>{% block title %}{% endblock %}</title>

    {% include 'base/css.html' %}
    {% block head %}{% endblock %}

  </head>

  <body id="page-top">

    {% include 'base/navbar.html' %}

    {% block content %}{% endblock %}

    {% include 'base/js.html' %}
    {% block js %}{% endblock %}

  </body>
</html>

这是无法使用javascript的模板:

{% extends 'base.html' %}
{% load static %}

{% block head %}
<link href="{% static 'css/card.css' %}" rel="stylesheet"></link>
{% endblock %}

{% block content %}

<div class="card-wrapper">
    {% for account in object_list %}
    <div id="make-3D-space">
        <div id="product-card">
            <div id="product-front">
                <div class="shadow"></div>
                <img src="" alt="" />
                <div class="image_overlay"></div>
                <div id="view_details"><a href="{{ account.get_absolute_url }}">View details</a></div>
                <div class="stats">         
                    <div class="stats-container">
                        <span class="product_price">{{ account.price }}</span>
                        <span class="product_name">{{ account.get_arena_readable }}</span>    
                        <p>King level {{ account.king_tower }}</p>                                            

                        <div class="product-options">
                            <strong>SIZES</strong>
                            <span>XS, S, M, L, XL, XXL</span>
                            <strong>COLORS</strong>
                            <div class="colors">
                                <div class="c-blue"><span></span></div>
                                <div class="c-red"><span></span></div>
                                <div class="c-white"><span></span></div>
                                <div class="c-green"><span></span></div>
                            </div>
                        </div>                          
                    </div>
                </div>  
            </div>  
        </div>  
    </div>
    {% endfor %}
</div>

{% endblock %}

{% block js %}
<script src="{% static 'js/card.js' %}"></script>
{% endblock js %}

css加载正常,但是javascript却没有。 我将javascript标记放在正确的块中,因此在运行本地开发服务器时应加载文件的内容。 为什么没有任何JavaScript包含在内?

由于存在card.js,因此似乎包含在内。 在此处输入图片说明

同样在base.html中,您有{%block js%} {%endblock%},但在第二个模板中,您有{%block js%} {%endblock js%}。

您尝试按如下所述从static目录访问静态文件:

<script src="{% static 'js/card.js' %}"></script>

而在您的设置中,您已将静态目录命名为static_local

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static_local'),
]

因此,基于此图像:

静态目录的名称为static
因此,在您的settings.STATICFILES_DIRS ,将static_local替换为static ,如下所示:

STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM