我试图使用Restify提供静态文件而没有运气。我在网上搜索了包括restify网站在内,到目前为止我发现的解决方案都没有找到"资源未找到"错误我得到了。这是我的代码 -
server.get(/.*/, restify.serveStatic({
'directory': 'public',
'default': 'test.csv'
}));
答案 0 :(得分:-1)
首先,您需要查看文件夹结构。 restify结合了您在使用serveStatic构建文件路径以从中提供文件时指定的目录和路径路径。
假设您的项目位于/project/test
并且包含启动服务器server.listen()
的模块的文件名为app.js
,位于/project/test/lib
您将公开内容放在/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
所以正在寻找/project/test/lib/public
中没有内容的http://domain.com/public的内容
您需要将/public
移至/lib
才能使其正常工作
如果你想保持这个相同的文件夹结构,你需要做类似的事情
server.get(/\/public\/?.*/, restify.serveStatic({
'directory': __dirname.replace('/lib', ''),
'default': 'test.csv'
}));
以便directory
的值现在为/project/test
,并且路线将在/project/test/public
中查找静态内容。