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

在Bun环境下使用ElysiaJS提供静态文件夹服务报错求解决

解决ElysiaJS静态文件夹服务问题

你遇到的Directories can't be read like files错误,是因为Bun.file("public")试图读取目录而非单个文件——Bun.file仅支持读取具体文件,不能直接处理目录。

实际上@elysiajs/static插件本身就实现了类似Express中express.static()的静态文件服务能力,不需要额外通过get("/")手动返回目录。正确的实现代码如下:

import { Elysia } from 'elysia';
import { staticPlugin } from '@elysiajs/static';

const app = new Elysia()
  // 配置静态文件服务,指定public为静态资源目录
  .use(staticPlugin({
    assets: 'public',
    // 访问根路径时自动加载目录下的index.html(可选,符合常规静态服务行为)
    index: 'index.html'
  }))
  .listen(3000);

console.log(
  `🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`
);

关键配置说明

  • assets: 'public':指定静态资源所在的本地目录,对应express.static('public')的核心功能
  • index: 'index.html':当访问根路径/或某个子目录时,自动返回该目录下的index.html文件,和Express的默认行为一致
  • 如果需要给静态资源设置访问前缀(比如通过/static/*访问),可以添加prefix: '/static'配置项

注意事项

确保项目根目录下存在public文件夹,并且里面有可访问的文件(比如index.html),启动服务后即可通过http://localhost:3000直接访问静态资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:07:07