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

使用express.static后index.ejs无法加载 其余EJS文件正常运行问题求助

问题根源

你的配置顺序导致express.static静态中间件优先级高于根路由:
当你访问根路径/时,静态中间件会优先扫描frontend目录下是否存在index.html默认索引文件,只要存在就会直接返回该静态文件,不会继续执行后续的res.render("index")逻辑。
而/create路由没有对应的静态文件匹配,所以中间件处理失败后会正常走到你定义的渲染逻辑,这就是其他页面正常唯独首页异常的核心原因。

解决方案,任选一种即可

  • 直接删除frontend目录下的index.html文件,这是最简单的处理方式
  • 给静态中间件添加配置,禁用默认的索引文件匹配:
    app.use(express.static(__dirname + "/frontend", { index: false }));
    
  • 把根路由的定义挪到静态中间件定义之前,让路由优先处理根路径请求:
    app.get("/", (req, res) => {
      res.render("index");
    });
    app.use(express.static(__dirname + "/frontend"));
    

额外排查项

如果上述方案都无效,优先检查views目录下的index.ejs文件名是否完全匹配,注意大小写拼写(Linux/macOS环境下大小写敏感,Index.ejs、index.EJS都会被判定为不存在)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:36:04