Django静态文件有时加载,有时不加载

Django Static Files sometimes load, sometimes not load

我正在开发一个 Django 应用程序,我在应用程序文件夹中创建了一个静态文件夹。我遇到了与静态文件相关的问题。问题是,当我通过 运行 服务器命令 运行 应用程序时,django 会收集静态文件,但是当我更改这些静态文件中的某些内容时,有时文件会更新,有时不会更新,而是收集这些文件的旧版本,即使我通过 运行 服务器命令再次保存文件和 运行 应用程序。当我重命名静态文件(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 %}

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

点击右上角的更多。

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

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

点击清除数据。

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

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

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