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

使用app.use无法托管静态HTML文件,访问根路径提示cannot GET/

Fixing "Cannot GET /" When Serving Static HTML with Express

Hey there, let's troubleshoot that frustrating "cannot GET /" error you're seeing when trying to serve static HTML files from your public folder with Express. This issue almost always comes down to a small configuration misstep—let's break down the most common fixes:

1. Verify Your Project File Structure

First, double-check where your public folder lives relative to your server file (like app.js or server.js). It should be in your project's root directory, not nested somewhere else. Here's the correct structure:

your-project/
  ├── app.js       # Your server entry file
  └── public/
      └── index.html  # Your main HTML file

If public is in a different location (like inside a src folder), you'll need to adjust your path accordingly (we'll cover that next).

2. Use Absolute Paths for Static Files

Relative paths can be unreliable if you start your server from a different directory. Instead, use Node's path module to generate an absolute path to your public folder. Here's how:

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

// Serve static files from the public directory
app.use(express.static(path.join(__dirname, 'public')));

// Start the server
app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

__dirname refers to the directory of your server file, so path.join(__dirname, 'public') will always point to the correct folder, no matter where you run the server from.

3. Ensure You Have a Default Index File

Express looks for index.html by default when you visit the root path (/). If your main HTML file has a different name (like home.html), you need to specify it in the static middleware options:

app.use(express.static('public', { index: 'home.html' }));

Or just rename your file to index.html—that's the simplest fix for this scenario.

4. Check Your Server Listening Setup

Make sure your server is actually listening on the port you're trying to access. The code snippet above uses port 3000, so you should visit http://localhost:3000 in your browser, not a different port or path.

5. Clear Browser Cache or Test in Incognito Mode

Sometimes old cached responses can make it seem like your setup isn't working. Clear your browser's cache, or open an incognito/private window to test your server—this eliminates any cached data interfering with the request.

If you've tried all these steps and still see the error, feel free to share your exact project structure and server code snippet, and we can narrow it down further!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:41:20