【问题标题】:Django Static Files sometimes load, sometimes not loadDjango静态文件有时加载,有时不加载
【发布时间】:2020-11-21 14:47:14
【问题描述】:

我正在开发一个 django 应用程序,其中我在应用程序文件夹中创建了一个静态文件夹。我遇到了与静态文件相关的问题。问题是,当我通过 runserver 命令运行应用程序时,django 确实会收集静态文件,但是当我更改这些静态文件中的某些内容时,有时文件会更新,有时不会更新,而是收集这些文件的旧版本,即使我保存该文件并通过 runserver 命令再次运行该应用程序。当我重命名静态文件(css 和 js 文件)并根据新名称更改 index.html 时,该应用程序在一段时间内使用更新的文件名完全可以正常工作,我一次又一次地面临这个问题。我厌倦了重命名文件并且没有得到任何适当的解决方案来解决这个问题。我会感谢您的意见和帮助。

我的应用程序的文件夹如下所示:

├───.vscode
├───Project
    └───manage.py    
    └───Project
        └───__pycache__/
        └───__init__.py
        └───asgi.py
        └───setting.py
        └───urls.py
        └───wsgi.py
    ├───templates
    │   └───base.html
    └───AppName
        └───templates
            └───index.html 
        └───static
            └───AppName
                └───js
                    └───indexjs.js //--> This file gets loaded with updated version and sometimes not
                └───css
                    └───style.css  //--> This file gets loaded with updated version and sometimes not
        └───views.py
        └───models.py
        └───urls.py
              .
              .
              .
              .
   

settings.py 中的静态文件设置

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

我的 index.html 文件中的静态文件设置如下所示:

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

{% block content-style-1 %}

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">



<script src="{% static 'AppName/js/jquery-3.5.1.min.js' %}"></script>
<link rel="stylesheet" href="{% static 'AppName/css/style.css' %}">

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



{% endblock %}

{% block content-1 %}

<div class="main">
    <p>To do App Django-1</p>
</div>

<div class="main-container-1"> 
        <input type="text" id="textbox-1" name="name" width="50px">
        <button type="button" id ="btn-2" class="btn btn-primary">Create</button>
</div>

<div class="card mb-1" id="task-card-id">
    <div class="card-body"><p>Card Content</p><button type="button" id="btn-3" class="close">
        <span aria-hidden="true">&times;</span>
      </button>
    </div>
</div>


{% endblock %}

【问题讨论】:

  • 你能把你模板的所有头部都贴出来吗?
  • @JLeno46 我已经添加了整个模板。我会感谢你的帮助

标签: python django django-staticfiles


【解决方案1】:

有时您必须硬刷新浏览器才能看到更改,尤其是 Chrome 浏览器。尝试删除 cookie 以查看问题是否停止。我有时会在另一个浏览器中打开同一个页面进行直接比较。

您可以通过按住 ctrl 并单击重新加载图标来硬刷新。

【讨论】:

  • 你让我免于一次又一次地重命名这些文件。我非常感谢你!
【解决方案2】:

有时,CSS 不会更新,因为它保存在缓存中。编辑 CSS 时,尝试清除缓存(如果您使用的是 google chrome):

点击右上角的更多。

点击更多工具。清除浏览数据。

选中“Cookie 和其他网站数据”和“缓存的图像和文件”旁边的复选框。

点击清除数据。

【讨论】:

    【解决方案3】:

    “文件已更新”是什么意思?你的意思是你可以在浏览器中看到更改的效果吗? 如果是,我在 Firefox 上也有同样的问题。它与开发服务器(runserver)无关,但 Firefox 不会以可靠的方式重新加载 css 文件。即使重新启动。对于其他浏览器,我从来没有遇到过这个问题。 您可以尝试使用插件清空缓存。我读到了 Firefox 中使用 Shift+reload(或 Ctrl?)强制重新加载的内容,但在我的情况下它并不总是有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-08
      • 1970-01-01
      • 1970-01-01
      • 2018-10-07
      • 2012-04-30
      • 2020-12-10
      • 2013-12-09
      • 2021-11-20
      相关资源
      最近更新 更多