Express运行npm run dev报错Cannot GET /,HTML文件无法加载如何解决
Express启动后报Cannot GET / 问题排查方案
问题原因及对应解决方法:
检查目录结构是否匹配
你代码中通过express.static配置的静态资源目录为html文件夹,express默认会自动读取该目录下的index.html作为根路由/的返回内容。如果你的项目根目录下不存在html文件夹,或者该文件夹下没有命名为index.html的入口文件,访问根路径就会触发404错误。确认静态资源路径是否正确
如果你当前的启动文件index.js没有放在项目根目录(比如存放在src子文件夹中),__dirname变量会指向index.js实际所在的文件夹路径,此时path.join(__dirname, 'html')指向的是index.js同级的html文件夹,而非项目根目录的html文件夹。你可以添加一行打印代码确认路径是否正确:console.log('静态资源实际读取路径:', path.join(__dirname, 'html'))启动服务后对比控制台打印的路径和你实际存放HTML文件的路径是否一致,不一致的话调整
path.join的参数即可。显式配置根路由兜底
如果你不想依赖express.static的默认读取规则,可以手动添加根路由的处理逻辑,在静态资源配置代码后添加如下内容:app.get('/', (req, res) => { // 括号内路径替换为你实际的HTML文件路径即可 res.sendFile(path.join(__dirname, 'html', 'index.html')) })注意:如果你要访问html文件夹下的其他HTML文件,比如about.html,直接访问
http://localhost:5000/about.html即可,不需要额外配置路由附带小问题修复
你代码中控制台打印端口的语句错误使用单引号包裹模板字符串,会导致无法正确打印实际启动的端口号,改为反引号即可:app.listen(PORT, () => console.log(`Server started on port ${PORT}`))
内容的提问来源于stack exchange,提问作者tquigg96
相关产品推荐
相关产品推荐

