gpt4 book ai didi

node.js - 使用 Restify 提供静态内容

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:42 27 4
gpt4 key购买 nike

我正在尝试使用 Restify 提供静态文件,但没有成功。我在网上进行了搜索,包括 Restify 网站,到目前为止我找到的解决方案都没有解决我收到的“资源未找到”错误。这是我的代码 -

server.get(/.*/, restify.serveStatic({
'directory': 'public',
'default': 'test.csv'
}));

最佳答案

首先您需要查看您的文件夹结构。 restify 结合了您在使用serveStatic 时指定的目录和路由路径来构建文件路径以提供文件服务。

假设您的项目位于 /project/test

并且包含使用 server.listen() 启动服务器的模块的文件名为 app.js 位于 /project/test/lib

并且您已将公共(public)内容放置在 /project/test/public

现在你有了一个看起来像这样的结构

  • /lib
    • app.js
  • /公共(public)
    • test.csv

问题是,如果你在app.js中添加这样的静态路由

server.get(/\/public\/?.*/, restify.serveStatic({
'directory': __dirname,
'default': 'test.csv'
}));

__dirname 变量返回 /project/test/lib

所以restify正在寻找http://domain.com/public的内容在 /project/test/lib/public 中,没有内容

您需要将 /public 移动到 /lib 才能正常工作

如果您想保持相同的文件夹结构,您需要执行类似的操作

server.get(/\/public\/?.*/, restify.serveStatic({
'directory': __dirname.replace('/lib', ''),
'default': 'test.csv'
}));

这样 directory 的值现在是 /project/test 并且路由将在 /project/test/public 中查找静态内容。

关于node.js - 使用 Restify 提供静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32017180/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com