代码之家  ›  专栏  ›  技术社区  ›  Tom Finet

Javascript在django模板中不起作用

  •  0
  • Tom Finet  · 技术社区  · 6 年前

    我有一个模板,它继承了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>
    

    {% 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被包括进来?

    enter image description here

    2 回复  |  直到 6 年前
        1
  •  0
  •   Geoffrey Nyaga    6 年前

    在你的基本.html您有{%block js%}{%endblock%},但在第二个模板中,您有{%block js%}{%endblock js%}。

        2
  •  0
  •   Lemayzeur    6 年前

    您正试图从访问静态文件 static

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

    而在您的设置中,您命名了静态目录 static_local

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

    根据这张图片:

    静止的 .
    所以在你的 settings.STATICFILES_DIRS ,更换 具有 如下所示:

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