托管带环回的静态页面时出现问题

problem hosting a Static page with loopback

我想在环回中承载静态页面。我在客户端目录中添加了 HTML 并删除了 server/boot/root.js

中的默认路径

但是,我必须遵循一些关于路由的规则,所以我将 config.json 的 restApiRoot 中的 '/api/' 替换为 '/'。现在我想在“/”路由上托管这个静态 HTML 页面。但它给出了这个错误

{"success":false,"message":"There is no method to handle GET /"}

此外,我尝试在 middleware.json 中为静态页面设置不同的路径,

"files": {
    "loopback#static": {
      "paths": [
        "/admin/"
      ],
      "params": "$!../client"
    }
  },

不过,这也不起作用。 PS:我已经添加了一个引导脚本来遵循我们的响应行为准则,这就是它给出这种类型响应的原因。

默认情况下,LoopBack 的 REST API 处理程序拥有它所装载的整个路径命名空间的所有权。如果您将 REST API 安装在 /api,那么只要路径未映射到任何远程方法,我们的处理程序就会 return 404。当您将 REST API 安装在 / 时,处理程序将接管整个 HTTP 服务器。

幸运的是,可以通过配置禁用此行为。请参阅 config.json >> Remoting properties 中的 rest. handleUnknownPaths 选项。

这是一个示例,显示如何在 server/config.json 文件中禁用此标志(请注意,我省略了该文件中可能已有的任何其他配置):

{
  "remoting": {
    "rest": {
      "handleUnknownPaths": false
    }
  }
}

I have added a boot script for following our code of conduct for the response, that's why it's giving this type of response.

您可能希望将 errorHandlerrest.handleErrors 都设置为 false,这样 LoopBack 就不会将错误转换为 HTTP 响应。

示例server/config.json

{
  "remoting": {
    "errorHandler": false,
    "rest": {
      "handleErrors": false,
      "handleUnknownPaths": false
    }
  }
}

有了这个设置,您可以编辑 server/middleware.json 并将默认的 strong-error-handler 中间件替换为您自己的错误处理实现(参见 Defining middleware >> Path to middleware function.