You need to enable JavaScript to run this app. Nodemon提示检测到变更重启但实际未生效,访问页面返回304是什么原因?
优惠活动
大模型
产品
解决方案
定价
更多

Nodemon提示检测到变更重启但实际未生效,访问页面返回304是什么原因?

问题原因及解决方案

1. 路由注册顺序错误(核心代码问题)

你提供的代码中app.listen(3000)的执行顺序在app.get('/')路由注册之前,Express启动端口监听后再注册的路由不会生效,哪怕Nodemon正常重启服务也无法加载新路由逻辑。
正确代码顺序示例:

const express = require('express')
const app=express()

app.use(express.urlencoded({extended:false}))

// 先完成所有中间件、路由的注册
app.get('/',((req,res)=>{
    res.send(`<a href="/login">Login</a> 
              <a href="/register">Register</a>
              `)
}))

// 最后启动端口监听
app.listen(3000)

2. 浏览器缓存导致304状态码

304状态码表示浏览器判定服务端资源未修改,直接加载了本地缓存的旧页面,没有请求最新的服务端内容。
对应解决方法:

  • 访问页面时按Ctrl+Shift+R(Windows系统)/Cmd+Shift+R(Mac系统)强制刷新,跳过本地缓存
  • 开发阶段可在Express中添加禁用缓存的中间件,彻底避免缓存问题,示例代码:
app.use((req, res, next) => {
  res.set('Cache-Control', 'no-store')
  next()
})

3. Nodemon监听配置异常

如果完成上述两步后仍未生效,检查Nodemon的监听规则:

  • Nodemon默认仅监听.js、.mjs、.json后缀的文件,如果你修改的是模板文件、静态资源文件,需要手动配置监听后缀
  • 可以在项目根目录新建nodemon.json配置文件,自定义监听规则,示例:
{
  "ext": "js,html,ejs,css"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 21:06:01