我如何给我的文件直接访问Hapi (Node.js)服务器

How do I give direct access to my files on Hapi (Node.js) server?

本文关键字:Hapi Node js 服务器 访问 我的 文件      更新时间:2023-09-26

Case:我想在Hapi (Node.js)服务器上为我的网站用户保留*.js文件,这样他们就可以像cdn一样包含它们(即:jQuery, font-awesome)。
问题:在Hapi (Node.js)服务器上这样做的正确方法是什么?

我所尝试的只是将它们连接起来:

<script src="https://mywebsite.com/myscripts/myjsfile.js"></script>

或者声明路由,使用惰性插件基于未来工作室教程和Hapi文档:

server.route({
  method: "GET",
  path: '/myscripts/{path}',
  handler: {
    directory: {
      path: '/myscripts/',
    }
  }
}

然后在html脚本标签中链接它们(如上所述)。我得到的是:

{"statusCode":403,"error":"Forbidden"}

我在Heroku上测试了它,我使用的所有插件都是:

  • 哈皮神
  • 径>
  • 惰性
  • 车把
  • MongoDB
  • 视力
  • AuthCookie
  • 贝尔
  • Bcrypt

解决方案非常简单:

  1. 允许跨原产地请求,
  2. 设置authfalse
  3. 设置handler()directory()listingtrue

路由,允许每个网站访问静态文件www.example.com/myscripts/whatever.js

server.route({
  method: "GET",
  path: '/myscripts/{path}',
  config: {
    auth: false,
    cors: { origin: ['*'] },
    handler: {
      directory: {
        path: 'myscripts',
        listing: true
      }
    }
  }
}