You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何修改Django静态文件inbox.js后服务器未同步更新?

问题:Django静态文件修改不生效,新文件无法被服务器返回

背景信息

我正在学习CS50W课程,目前在完成课程提供的Django Mail单应用代码。所有后端Python代码和逻辑都已完成,我只需要修改静态文件夹里的inbox.js实现新功能,但静态文件出了问题。

实际问题

对inbox.js的任何修改都不生效,服务器始终返回初始版本。甚至在静态文件夹里新建文件,服务器也不会返回这些新文件。

我的inbox.js代码

document.addEventListener('DOMContentLoaded', function() {

// Use buttons to toggle between views
document.querySelector('#inbox').addEventListener('click', () => load_mailbox('inbox'));
document.querySelector('#sent').addEventListener('click', () => load_mailbox('sent'));
document.querySelector('#archived').addEventListener('click', () => load_mailbox('archive'));
document.querySelector('#compose').addEventListener('click', compose_email);

// By default, load the inbox
load_mailbox('inbox');
});

function compose_email() {

// Show compose view and hide other views
document.querySelector('#emails-view').style.display = 'none';
document.querySelector('#compose-view').style.display = 'block';

// Clear out composition fields
document.querySelector('#compose-recipients').value = '';
document.querySelector('#compose-subject').value = '';
document.querySelector('#compose-body').value = '';
}
  
function load_mailbox(mailbox) {

// Show the mailbox and hide other views
document.querySelector('#emails-view').style.display = 'block';
document.querySelector('#compose-view').style.display = 'none';

// Show the mailbox name
document.querySelector('#emails-view').innerHTML = `<h3>${mailbox.charAt(0).toUpperCase() + mailbox.slice(1)}</h3>`;
}

已尝试的解决方法

  • 停止并重启服务器,无变化
  • 参考过两篇关于Django静态文件修改的解决方案,均无效

解决方案

  • 强制清除浏览器缓存:按Ctrl + Shift + R(Windows/Linux)或Cmd + Shift + R(Mac)强制刷新页面,绕过浏览器缓存加载最新静态文件。
  • 验证静态文件配置:检查settings.py中的静态路径配置,确保STATICFILES_DIRS指向你存放inbox.js的文件夹,模板中引用脚本的路径使用{% static 'inbox.js' %}格式。
  • 禁用开发环境静态缓存:在settings.py中确保DEBUG = True,添加STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage';或启动服务器时加参数:python manage.py runserver --nostatic。
  • 确认文件位置:检查修改的inbox.js是否在Django配置的静态文件夹内,避免误修改了其他目录的同名文件。
  • 核对服务器目录:确认启动的Django服务器指向当前修改的项目目录,没有启动其他项目副本。

内容的提问来源于stack exchange,提问作者Cauã

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:16:26